#php #file-upload #timeout
#php #загрузка файла #тайм-аут
Вопрос:
Я использовал руководство по созданию PHP-скрипта для загрузки файлов на сервер. Это прекрасно работает для изображений и небольших файлов размером менее 10 мб, но при таком размере это приводит к сбою. Я полагаю, что это может быть связано с таймаутом сервера. Вопрос в том, если я прав в своем предположении, есть ли способ сообщить серверу подождать, пока файл не будет загружен?
Конечно, может быть другая проблема, о которой я не подумал, согласно имеющемуся у меня сценарию, большие загрузки не выдают ошибку, и отображается текст «успех»!
Буду признателен за любой полезный совет 🙂
Ответ №1:
Попробуйте это: http://php.net/manual/en/function.set-time-limit.php
Комментарии:
1. Вау, это было быстро! Спасибо, я посмотрю на ссылку
2. Надеюсь, это поможет 🙂 В противном случае, не стесняйтесь спрашивать!
3. Оказывается, мое предположение было неверным, и теперь я полагаю, что у меня проблема с размером файла
4. Вы можете изменить это в php.ini — если у вас есть к этому доступ, то есть.
Ответ №2:
Вы можете установить время ожидания с помощью set_time_limit($seconds)
Если вы установите $seconds
значение 0, сервер не потеряет время ожидания — но используйте это очень осторожно!
Комментарии:
1. Спасибо за быстрый ответ, я попробую это, а также прочитаю ссылку выше.
Ответ №3:
В PHP есть функция под названием set_time_limit(), которую вы можете использовать, чтобы установить, сколько времени потребуется, прежде чем PHP завершит работу из-за слишком долгого запуска. Будьте осторожны с этим, хотя, поскольку установка его в 0 может заставить обработку php ждать вечно и потреблять ресурсы вашего сервера.
Вы также можете установить эту директиву в php.ini или из файлов apache .htaccess.
В php.ini также есть max_input_time
Ответ №4:
Эти директивы могут быть полезны:
- upload_max_filesize
- max_execution_time
Эти директивы могут быть изменены в php.ini или через функцию ini_set.
Ответ №5:
убедитесь, что для загрузки разрешено более 10 мбhttp://php.net/manual/en/features.file-upload.errors.php
затем с помощью php
set_time_limit(0);
Ответ №6:
Если вы используете PHP в качестве модуля Apache и предыдущие ответы не работают, вы можете посмотреть на время ожидания Apache, но это не рекомендуется.