2010-11-12 31 views
17

Me gustaría crear un archivo zip en la memoria usando una ZipArchive (o una clase PHP nativa) y leer el contenido del archivo de nuevo al cliente. es posible? ¿Si es así, cómo?Crear un archivo zip utilizando PHP clase ZipArchive sin escribir el archivo en el disco?

Los archivos que deseo comprimir en esta aplicación tienen un máximo de 15 MB en total. Creo que deberíamos estar en buen estado de memoria.

+2

Duplicado: http://stackoverflow.com/questions/1061710/php-zip-files-on-the-fly – pestaa

+0

y ¿cómo manejará los archivos comprimidos que exceden la cantidad de memoria disponible para PHP? – stillstanding

+0

por favor, deje esta pregunta abierta, http://stackoverflow.com/questions/1061710/php-zip-files-on-the-fly se le preguntó de una manera que podría recibir respuestas útiles. – CLJ

Respuesta

3

Eche un vistazo a la siguiente biblioteca, permite crear archivos zip y devolverlos como una secuencia: PHPClasses.org.

+3

Me gustaría algo que sea nativo de la biblioteca php estándar. – CLJ

+0

Si puedo preguntar, ¿hay alguna razón para eso? –

+2

Así que no tengo que arrastrar en una dependencia y mantenerla a lo largo del tiempo. Si está incluido en la biblioteca estándar, no tendré que preocuparme de forma incompatible cuando actualice las versiones de php. – CLJ

1

Pruebe ZipStream (enlace a GitHub repo, también admite la instalación a través de Composer).

Desde el sitio web del autor original (ahora muerto):

ZipStream es una biblioteca para el streaming de forma dinámica archivos zip dinámicas desde PHP sin necesidad de escribir en el disco en absoluto en el servidor.

+0

Encontré esto como un buen reemplazo para el vínculo inactivo: https://github.com/maennchen/ZipStream-PHP '$ zip = new \ ZipStream \ ZipStream ('bulk-export.zip'); $ zip-> addFile ('users.csv', '(datos csv generados por otro método aquí)'); $ zip-> finish(); ' – Hans

+0

@Hans actualizado nuevamente, gracias! –

Cuestiones relacionadas