Доброе утро всем!
Что происходит: в настоящее время у меня есть веб-сайт, на котором я разрешаю пользователям загружать файлы. Они "выбирают" местоположение того, где на сервере файлы сохраняются с помощью выбора, который они делают. Каталог, в который они попадают, хранится как переменная сеанса. После нажатия кнопки загрузки файл помещается в этот каталог. Пока нет проблем. Первоначально у меня были проблемы с большими файлами из-за настроек в Apache. Я изменил следующее:
Upload_max_filesize = 2M => Upload_max_filesize = 0
memory_limit = 512M => memory_limit = -1
Это означает, что пользователь может загрузить любой размер файла. Это отлично работает для файлов размером 400 МБ, поэтому проблем нет. Однако, когда я тестировал 16-гигабайтный файл, проблема возникает. По моему мнению, из моего понимания, что Apache больше не ограничивает загрузку по размеру, и что изменение вышеуказанных настроек должно было помочь, иначе мой файл 400 МБ не будет работать.
Проблема:
После завершения выполнения индикатора выполнения загрузки на странице отображается сообщение об ошибке, которое я установил на место, если местоположение каталога, сохраненное в переменной сеанса, отсутствует. Поэтому я считаю, что сессия может быть отключена и "забыть" переменную сеанса. После выполнения загрузки, которая занимает примерно час, отображается сообщение.
Что я пробовал
Проведя некоторое исследование, я попытался изменить следующее, просто чтобы понять, имеет ли он значение:
session.gc_maxlifetime = 36000
36000 должно = 10 часов. В конце концов, я бы не стал его здесь, но просто сделал это для тестирования. Даже изменение этого по-прежнему приводит к тому, что, по моему мнению, является тайм-аутом. Я надеялся, что у кого-то есть предложения и, возможно, другие настройки, которые тоже должны быть изменены?
Заранее спасибо!
$seconds = 60*60*24
set_time_limit ( int $seconds )
Я точно не знаю ответа, но я предполагаю, что может быть ваш максимальный срок выполнения скрипта ограничен. Возможно, запустите приведенный выше код вместе со своей переменной времени сеанса... удачи.. пожалуйста, попробуй меня, так что я может опубликовать мой собственный вопрос. Кто редактирует мой ответ, пожалуйста, зайдите в мой профиль и посмотрите, что со мной произошло
Ваш PHP файл может быть отключен. Это значение по умолчанию является низким. (примерно 2 мин)
попробуй это:
ini_set('max_execution_time', 3600); //3600 seconds = 1 hour, or value 0 for unlimited
Попробуйте изменить это значение на что-то более высокое, так как эти файлы, которые вы описываете, вероятно, занимают больше времени, чем 5 минут для загрузки.
memory_limit = 512M => memory_limit = -1
Это не нужно и, как правило, плохая идея.