Очень большие загрузки с PHP - PullRequest
37 голосов
/ 14 мая 2009

Я хочу разрешить загрузку очень больших файлов в наше PHP-приложение (сто мегабайт - 8 гигабайт). Однако есть несколько проблем с этим.

Браузер:

  • HTML-загрузки имеют дрянную обратную связь, нам нужно либо опросить о прогрессе (что немного глупо), либо вообще не показывать никакой обратной связи
  • Flash Uploader помещает весь файл в память перед началом загрузки

Сервер:

  • PHP заставляет нас устанавливать post_max_size, что может привести к легко эксплуатируемой DOS-атаке. Я бы не хотел устанавливать этот параметр глобально.
  • Сервер также требует наличия некоторых других переменных в переменных POST, таких как секретный ключ. Мы хотели бы иметь возможность отклонить запрос сразу, а не после загрузки всего файла.

Требования:

  • HTTP является обязательным.
  • Я гибок с технологией на стороне клиента, если она работает в браузере.
  • PHP не является обязательным требованием, если есть какая-то другая технология, которая будет хорошо работать в среде Linux, это прекрасно.

Ответы [ 13 ]

1 голос
/ 14 мая 2009

Рассматривали ли вы использование APC для проверки прогресса и общего размера файла. Вот хорошее сообщение в блоге об этом. Это может помочь.

0 голосов
/ 26 июня 2013

Попробуйте: http://www.simple2ftp.com использует FTP-апплет на основе Java из хитрой оболочки PHP-приложения.

0 голосов
/ 14 мая 2009

Я знаю, что отстойно добавить еще одну зависимость, но по моему опыту, большинство веб-сайтов, которые делают что-то подобное, используют flash на стороне клиента и загружают большой файл в виде кусков

Adobe как Howto при загрузке файлов Flash

Я также нашел этот учебник по codeproject:

Загрузка нескольких файлов с индикатором выполнения с использованием Flash и ASP.NET

PS - Я знаю, что вы используете PHP, а не .net, я подумал, что важной частью была флэш-память;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...