Рекомендуется ли загружать очень большие файлы (например, 500 мб) через php?
Я создал простой веб-интерфейс, позволяющий различным пользователям загружать файлы. Я установил ограничение на загрузку в 100 мб, но теперь выясняется, что клиент иногда хочет загружать файлы размером 500 мб+.
Я знаю, что нужно изменить конфигурацию php, чтобы изменить лимит загрузки, но мне было интересно, есть ли какие-либо серьезные недостатки в загрузке файлов такого размера через php?
Очевидно, что ftp был бы предпочтительнее, но, если возможно, я бы предпочел не использовать два разных способа загрузки файлы.
Спасибо
3 answers
Во-первых, FTP никогда не является предпочтительным. Ни к чему.
Я полагаю, вы имеете в виду, что вы передаете файлы через HTTP. Хотя это не так плохо, как FTP, это не очень хорошая идея, если вы можете найти другой способ решения проблемы. HTTP (и, следовательно, программы-компоненты) оптимизированы для передачи относительно небольших файлов по Интернету.
Хотя протокол поддерживает запросы диапазона от сервера к клиенту, он не допускает обратной операции. Даже если программное обеспечение на любом конце если бы объем не зависел от объема, чем больше данных вы передаете, тем больше интервал, в течение которого вы можете потерять соединение. Но самая большая проблема заключается в этом предостережении в последнем предложении.
Независимо от используемой вами серверной технологии (PHP или что-то еще) никогда не рекомендуется запускать этот большой файл за один проход в синхронном режиме.
Существует множество плагинов для любой технологии/платформы, которые будут выполнять асинхронную загрузку для вас.
Помимо истечения времени ожидания соединения, есть еще один недостаток в том, что загрузка файлов потребляет память веб-сервера. Обычно ты этого не хочешь.
PHP будет обрабатывать столько файлов и такого размера, сколько вы ему позволите. Но учтите, что в принципе невозможно возобновить прерванную загрузку в PHP, так как скрипты не запускаются до тех пор, пока загрузка не будет завершена. Чем больше размер файла, тем больше вероятность сбоя в сети, который приведет к остановке загрузки и потере значительной части времени и пропускной способности. Кроме того, без дополнительной работы с APC или использования чего-то вроде uploadify нет отчета о ходе работы, и пользователи остаются в браузере не проявляя никаких видимых признаков реальной работы, кроме пыхтящего пульсатора.