PHP POST запрашивает тайм-аут - PullRequest
1 голос
/ 03 октября 2011

В настоящее время я работаю над сценарием загрузки, поддерживающим больший загрузок (~ 50 Мб), и я очень быстро столкнулся с проблемой! Я использую традиционный запрос POST с формой, загружающей файл во временную папку и позже перемещающей его с помощью PHP. Естественно, я обновил свой файл php.ini, чтобы он поддерживал немного больше, чем файлы по умолчанию, и файлы размером около 15 Мб действительно хорошо загружаются!

Основная проблема связана с моей хостинговой компанией. Они позволяют сценариям timeout через 60 секунд, что означает, что POST-запросы, выполнение которых длится более 60 секунд, прекратят работу до того, как временный файл достигнет сценария PHP, и это, естественно, приведет к внутренней ошибке сервера.

Невозможно определить тайм-аут на сервере (после горячих дебатов). Я рассматриваю варианты. Есть ли способ поднять запрос или как-то обновить его, чтобы уведомить сервер и сбросить время? Или есть альтернативные методы загрузки, которые не превышают время ожидания?

Ответы [ 3 ]

0 голосов
/ 03 октября 2011

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

  1. Получите новую хостинговую компанию. Это может быть вашим лучшим решением.

  2. Разработайте довольно сложную систему на стороне клиента, которая разбивает загрузку на несколько частей и передает их через AJAX. Это ужасно, особенно потому, что полезно только для обхода правила хоста.

Я бы действительно исследовал №1.

0 голосов
/ 03 октября 2011

Вы действительно уверены, что это проблема тайм-аута? Моя первая идея ...

  • передача не выполнена из-за ограничений конфигурации, заданных в файле php.ini веб-сервера. Вам нужно изменить его или установить в качестве локальных настроек в вашем скрипте

    # найдите его в php.ini, используемом вашей конфигурацией memory_limit = 96M post_max_size = 64 млн. upload_max_filesize = 64M

Или непосредственно в вашем сценарии

ini_set('memory_limit', '96M'); 
ini_set('post_max_size', '64M'); 
ini_set('upload_max_filesize', '64M');
0 голосов
/ 03 октября 2011

С большим трудом.Безусловно, самый простой вариант - сбросить жесткий компьютер и выбрать тот, который действительно позволяет вам работать продуктивно.Я лично использую TSOHost - был с ними более полутора лет и до сих пор не имел абсолютно никаких причин жаловаться (даже небольшого раздражения).

...