Frats
Terugkerende gebruiker
- Lid geworden
- 22 nov 2008
- Berichten
- 4.492
Heeft hier iemand weleens gewerkt met de ZipArchive library? Ik probeer mijn site zover te krijgen dat hij on-demand files inpakt en aanbied als download, nou werkt dat wel, maar wat ik eigenlijk liever zou zien is dat hij de files niet eerst hoeft op te slaan op de harde schijf.
Is er ook een manier om het archief aan te maken, files er in te stoppen, en die vervolgens te echo'en naar de browser zonder hem op de harde schijf te zetten?
De enige manier die ik nu kan vinden is het archief closen, file_get_contents erop aanroepen, en het daarna weer verwijderen, maar liever heb ik ze helemaal niet opgeslagen.
Ik heb het al geprobeerd met ZipArchive::getStream() maar die verwacht ook een filename en ik kan hem voor zover ik kan zien niet aanroepen op mijn (niet opgeslagen) instance van de class.
Op dit moment ziet het voorbeeld script er zo uit:
Als iemand iets weet, dan graag
Mocht het niet mogelijk zijn, dan gooi ik ze wel gewoon in de temp map...
Is er ook een manier om het archief aan te maken, files er in te stoppen, en die vervolgens te echo'en naar de browser zonder hem op de harde schijf te zetten?
De enige manier die ik nu kan vinden is het archief closen, file_get_contents erop aanroepen, en het daarna weer verwijderen, maar liever heb ik ze helemaal niet opgeslagen.
Ik heb het al geprobeerd met ZipArchive::getStream() maar die verwacht ook een filename en ik kan hem voor zover ik kan zien niet aanroepen op mijn (niet opgeslagen) instance van de class.
Op dit moment ziet het voorbeeld script er zo uit:
PHP:
$oZipArchive = new ZipArchive();
// make the archive.
$oZipArchive->open('bla.zip', ZIPARCHIVE::CREATE);
$oZipArchive->addFromString( 'test.txt', 'Dit is de inhoud van de file.' );
$oZipArchive->addFromString( 'test2.txt', 'Dit is de andere inhoud van de file.' );
$oZipArchive->addFromString( 'test3.txt', 'Dit is meer inhoud van de file.' );
$oZipArchive->close();
header("Content-Disposition: attachment; filename=bla.zip");
header("Content-type: 'application/zip'");
echo file_get_contents( 'bla.zip' );
unlink ( 'bla.zip' );
exit;
Als iemand iets weet, dan graag
