Скачать много архивов для сервера в одном архиве с php
Мне нужно сделать заявление, чтобы пользователь загружал на сервер множество картинок, выбирая несколько критериев и только в одном архиве. я попытался с php и pclzip.lib и библиотеками zipstream, найденными в сети, но ни один из этих двух методов не работает. с помощью pclzip я могу сжать только 3 МБ, а с библиотекой zipstream в середине загрузки он не может работать с размером 25 МБ. Я не знаю, сколько архивов нужно будет загрузить пользователю, но сейчас у меня около 700 архивов и 75 МБ. Есть ли другой способ заставить это приложение работать или у кого-то были подобные проблемы с этими библиотеками и они решены. Вот еще несколько спецификаций: удаленный сервер iis, php. спасибо и извините за мой английский
2 ответа
Через некоторое время я нашел способ использовать
ini_set('max_execution_time', 1200);
ini_set("memory_limit","500M");
И библиотека
ZipStream
. Кроме того, я изменил ограничение памяти PHP на сервере PHP, потому что мой файл очень большой.
Я использовал pclzip раньше, и этот код работает:
if ($this->extension == 'zip') {
$this->archive = new PclZip($orgPath);
if ($this->archive->extract(PCLZIP_OPT_PATH, $newPath) == 0) {
die("Error : " . $this->archive->errorInfo(true));
}
}
Но я думаю, что это не твоя проблема. Похоже, не хватает оперативной памяти для PHP или не хватает времени.
Если это ваша проблема, вы можете исправить это с помощью
set_time_limit(0); // 0 = no time limit
ini_set('memory_limit', '300M'); // Increases memory for PHP to 300M
Это работает для меня на Apache (я не уверен, но работает ли ini_set в вашей системе?)