¿Cuál es la forma más fácil de comprimir, digamos 2 archivos, desde una carpeta en el servidor y forzar la descarga? Sin guardar el "zip" en el servidor.Archivos ZIP de PHP sobre la marcha
$zip = new ZipArchive();
//the string "file1" is the name we're assigning the file in the archive
$zip->addFile(file_get_contents($filepath1), 'file1'); //file 1 that you want compressed
$zip->addFile(file_get_contents($filepath2), 'file2'); //file 2 that you want compressed
$zip->addFile(file_get_contents($filepath3), 'file3'); //file 3 that you want compressed
echo $zip->file(); //this sends the compressed archive to the output buffer instead of writing it to a file.
se puede verificar: Tengo una carpeta con Test1.doc, Test2.doc y test3.doc
con el ejemplo anterior - fichero1 (archivo2 y archivo3) sólo podría ser Test1.doc , etc.
¿Tengo que hacer algo con "$ filepath1"? ¿Es ese el directorio de carpetas que contiene los 3 documentos?
Lo siento por mi pregunta básica ..
De acuerdo con la [documentación] (http://us3.php.net/manual/en/class.ziparchive.php) la clase ZipArchive no tiene ningún archivo de función() y esto dará como resultado un error. Para hacer esto necesita una biblioteca diferente como por ejemplo [este] (http://stackoverflow.com/questions/1189019/manipulate-an-archive-in-memory-with-php-without-creating-a- temporal-archivo-en-d). Solo ponerlo aquí para que otras personas no pasen horas intentando que esto funcione con las sugerencias a continuación. – Neograph734