Назад | Перейти на главную страницу

PHP не может загрузить файл размером более 200 МБ

На моем сайте я разрешаю загрузку файлов. Я успешно загрузил файл размером 180 МБ.
Но я пытался загрузить файл размером 393 МБ, и каждый раз он терпел неудачу при загрузке 51% (загружено примерно 200 МБ). Под «неудачей» я подразумеваю, что загрузка файла затем перезапускается с 0%. В конце концов, он сдается, и Chrome сообщает мне, что потерял соединение с mysite.com и перезагружает страницу позже.

В моем php.ini у меня есть следующее:

upload_max_filesize = 10G
post_max_size = 10G
max_execution_time = 60 
max_input_time = 10000 
memory_limit = -1

Я знаю, что у меня мало max_execution_time, но согласно php.net:

max_execution_time влияет только на время выполнения самого скрипта ... время, затрачиваемое процессом загрузки файла, не учитывается при определении максимального времени, в течение которого скрипт был запущен.

Я убедился, что мои директивы php.ini успешно установлены через phpinfo ();

У меня есть Linux-сервер с Godaddy с неограниченной пропускной способностью и дисковым пространством. Это виртуальный хостинг, хотя у меня есть выделенный IP.

РЕДАКТИРОВАТЬ: Я пробовал файл размером 204МБ. Это не удалось на 98 или 99%. Итак, похоже, я не могу больше 200 МБ

Я позвонил Godaddy.
Максимальный размер загрузки, который Godaddy допускает на виртуальном хостинге, составляет 192 МБ.

Мне нужно было бы получить выделенный сервер или, возможно, обратиться к другому провайдеру.

Если вы хотите загрузить такие большие файлы, может быть, вы можете попробовать через ftp-доступ?

Я не знаю о виртуальном хостинге, но если у вас большой сайт, вам лучше использовать свой собственный Linux-компьютер и настроить его так, как вы сочтете нужным.

== Некоторые обновления по последнему вопросу ==

http://www.net2ftp.com/ это, например, веб-доступ по ftp, но дело в том, что если ваши клиенты захотят загрузить, будет головной болью сделать каждый ftp-доступ к определенной папке, хотя это можно сделать.

Теперь, поскольку я никогда не делал этого раньше, я провел небольшое исследование и обнаружил http://php.net/manual/en/ref.ftp.php, для этого потребуется ftp-пользователь и пароль, но вы можете иметь его для сайта. Вам нужно глубоко изучить пробелы, которые вы можете открыть с помощью этого.

На этой странице вы найдете множество примеров загрузки по ftp, надеюсь, это поможет в остальном. Как вы сказали, вам понадобится выделенный или виртуальный сервер, чтобы попробовать это, вы находитесь в ЕС? Я могу помочь вам протестировать ваше приложение на одном из моих серверов, если вы хотите ... но все же 200 МБ только с веб-загрузкой без использования флэш-памяти могут привести к тайм-ауту HTTP-сеанса.

Меня интересует загрузка Flash в сочетании с FTP, поэтому нет тайм-аута сеанса ... я продолжаю поиск.