Как создать большие почтовые файлы с низким значением memory_limit?

Мне нужно создать большой zip-архив из файлов jpg. Генерация zip перерывается на 64 МБ. Нет никакого способа увеличить ограничение памяти на хостере.

Я перепробовал много методов для создания zip-файлов, но все не удалось:

  • Класс PHP ZipArchive.
  • exec («zip -r file.zip * .jpg»)
  • pclzip (с возможностью создания временных файлов вместо памяти)

Может быть, есть другой способ создания zip-файлов с использованием потоковых / временных файлов с низким объемом памяти?

Спасибо за предложения

1

Решение

Вы можете попробовать set_time_limit (sec) или ini_set (‘max_execution_time’, sec) в вашем скрипте.

Вы можете попробовать что-то вроде этого

initialise your zip class

foreach ( files in the directory as $idx => $name) {

add $name to your zip file;

// every 10 files zipped, reset the max_execution_time
if ( $idx > 0 && $idx % 10 == 0 ) {
set_time_limit ( 30 ); //if it doesnt work try to use ini_set('max_execution_time', 30);
}
}

Он будет сбрасывать max_execution_time на 30 секунд каждые 10 файлов, которые вы заархивировали.

Я использовал 10 файлов в качестве примера, вы можете установить его в зависимости от вашего среднего размера файла.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]