Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Не сжимает в ZIP большие файлы


Автор: lollollollol 17.5.2014, 10:40
Для удобства скачивания и хранения файлов предпологается сжимать их в zip архив. Делаю я это так:


Код

$zip = new ZipArchive;
if ($zip->open($filepath, ZipArchive::CREATE) === TRUE){ } else { die("ERROR CREATE ZIP ARCHIVE"); }
$zip->addFile($path, 'file.txt'); 


Естественно есть всевозможные проверки, для простоты понимания проблемы я их опустил.

Суть проблемы:
Если запаковывать файлы размером менее 100мб, все гладко.
Но если размер файла 150-300 мб, через некоторое время ожидания получаю белый лист. И файл упакованый лишь частично!
Т.е. будь-то сработал таймаут, упаковка обрубилась как и выполнение скрипта.

Как установить время упаковки без ограничения?
т.е. если надо скрипту, грубо говоря, час, пусть час и упаковывает, я подожду?

Устанавливаю в начале скрипта set_time_limit(0); , но это не решает проблемы.
В панельке ISPManager раздел Настройки сервера - настройки php установил Время выполнения 500 сек, но по факту и 50 секунд не проходит. лимит памяти и запроса там по 512 мб стоит, вродебы всего должно хватить.

Подскажите в каком направлении копать, спасибо

Автор: Aliance 21.5.2014, 10:19
Показ ошибок включите и посмотрите, что выдает скрипт. Либо в логах.

Автор: ksnk 21.5.2014, 10:40
Цитата(lollollollol @  17.5.2014,  10:40 Найти цитируемый пост)
через некоторое время ожидания

Примерно какое?

Кроме таймаута на выполнение на сервере, есть таймаут ожидания ответа в броузере. Если броузер не получает ничего несколько минут - он считает, что страница зависла и так и говорит клиенту. Решение - периодически что-то выводить клиенту. Хотя бы строку комментариев.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)