Создать zip-файл с помощью PHP-класса ZipArchive без записи файла на диск?


Я хотел бы создать zip-файл в памяти с помощью ZipArchive (или собственного класса PHP) и прочитать содержимое файла обратно клиенту. Возможно ли это? Если да, то как?

Общий объем файлов, которые я хочу заархивировать в этом приложении, составляет не более 15 МБ. Я думаю, что мы должны быть в хорошей форме с точки зрения памяти.

Author: Frosty Z, 2010-11-12

3 answers

Взгляните на следующую библиотеку, она позволяет создавать zip-файлы и возвращать их в виде потока: PHPClasses.org.

 3
Author: Cpt. eMco, 2010-11-12 14:16:45

Попробуйте Зипстрим ( ссылка на репозиторий GitHub, также поддерживает установку через Composer).

С веб-сайта оригинального автора (ныне мертвого):

Zipstream - это библиотека для динамической потоковой передачи динамических zip-файлов с PHP без записи на диск вообще на сервере.

 1
Author: Frosty Z, 2017-01-02 18:53:09

Есть еще одна тема, говорящая об этом: Управление архивом в памяти с помощью PHP (без создания временного файла на диске)

Крапива предложила использовать zip.lib.php от phpmyadmin. Я думаю, что это довольно надежное решение.

К ВАШЕМУ СВЕДЕНИЮ zip.lib.php больше не существует, его заменили на ZipFile.php в той же папке/библиотеках.

 0
Author: Shunzhe, 2017-05-23 12:26:09