Næsten gode zip-filer vha. zip-lib
Hej eksperterJeg har leget lidt med at lave dynamiske zip-filer og har fundet den zip-lib klasse som der også benyttes i phpmyadmin. Jeg bruger den på følgende måde:
$zipfile = new zipfile();
// add the subdirectory ... important!
$zipfile -> add_dir("/");
// add the binary data stored in the string 'filedata'
$filename = "./billede.gif";
$fd = fopen ($filename, "rb");
$filedata = fread($fd, filesize($filename));
fclose ($fd);
$zipfile -> add_file($filedata, "testbillede.gif");
/*
// the next three lines force an immediate download of the zip file:
header("Content-type: application/octet-stream");
header("Content-disposition: attachment; filename=test.zip");
echo $zipfile -> file();
*/
// OR instead of doing that, you can write out the file to the loca disk like this:
$filename = "output.zip";
$fd = fopen($filename, "wb");
$out = fwrite($fd, $zipfile -> file());
fclose($fd);
// then offer it to the user to download:
?>
<a href="output.zip">Click here to download the new zip file.</a>
Hvis jeg vælger at kaste zip-filen direkte til download vha. header-kommandoerne som pt. er ud-kommenteret ovenfor får jeg problemer - jeg får bare noget mystisk kode i browseren...
Hvis jeg derimod vælger at gemme zip-filen og i stedet tilbyde den via et link fungerer det fint hvis jeg bruger "Save" til at gemme filen lokalt og derefter åbne den i winzip. Hvis jeg til gengæld vælger "Open" for at åbne den direkte er zip-filen tom!!
Det kan testes på: http://tommyipsen.dk/test/ziptest.php
-er der nogen som kan forklare det!!??
