2013-03-08 5 views
0

У меня есть сценарий ZipArchive, используемый для функции «загрузка корзины» на моем сайте. Пользователи выбирают аудио, которое они хотели бы добавить в корзину, затем сценарий аутентифицирует пользователя и захватывает все защищенные файлы и добавляет их в готовый к загрузке zip.Ограничения ZipArchive? PHP

После того, как почтовый индекс загружен, код затем удаляет файл. Это все работает хорошо, однако у меня возникает проблема с большими файлами! Если пользователи хотят заархивировать дорожки на общую сумму более 250 МБ, то временный zip-файл, который будет написан, никогда не станет больше 250 Мбайт - он просто перезаписывается и снова запускается.

Моих два вопроса будет затем:

  1. ли ZipArchive имеет ограничение файлов записываются?
  2. Есть ли у ZipArchive другой способ записи файлов для создания больших файлов?

Цените свою помощь.

ответ

0

Предел ZIP-файла составляет 4 ГБ сжатого файла. Для больших 4 ГБ вам нужно разделить его отдельно.

Но это может зависеть от memory_limit(), если вы на лету ZIP это будет на более низкой емкости.

Есть ли у ZipArchive другой способ записи файлов, чтобы сделать более крупными файлами?

No. Но вы можете разделить свой архиватор, если хотите, и позже присоединиться к извлечению в качестве строки.

+0

Спасибо, что вернулись ко мне Марин. Мы имеем дело с несжатыми аудиофайлами WAV, и некоторым клиентам нравится загружать «целые альбомы», поэтому в конечном итоге это займет примерно 1/2gb за zip. У меня нет проблемы с лимитом 4 ГБ. Я попытался использовать shell_exec (copy) для выполнения аналогичной задачи, однако файлы не копировались - очень расстраивает. Могу ли я установить ограничение памяти в PHP-скрипте? Является ли это ограниченным объемом оперативной памяти, установленной в поле? –

+0

Попробуйте добавить 'ini_set ('memory_limit', '-1');' внизу файла. Увеличьте объем памяти или разрешите загрузку через анонимные учетные записи FTP. –

Смежные вопросы