У меня странная проблема при загрузке больших файлов в PHP.
В php.ini для max_execution_time
установлено значение 30, для post_max_size
установлено значение 32M, для upload_max_filesize
установлено значение 32M. Когда я пытался загрузить файл размером 40,2 МБ, он не показывал никакой ошибки. Переменная $_FILES
имеет значение array(0) { }
, а $_FILES['userfile']
показывает NULL
.
Если размер файла превышает значение, установленное в php.ini, он должен вернуть сообщение об ошибке
UPLOAD_ERR_INI_SIZE, Значение: 1; Загруженный файл превышает директиву upload_max_filesize в php.ini.
Но он также не отображает никаких ошибок (поскольку $_FILES
- пустой массив). Я не знаю, почему это происходит.
Когда я изменяю в php.ini и устанавливаю post_max_size равным 64M, upload_max_filesize
устанавливается равным 64M, тогда он работает нормально. Поэтому я решил использовать следующий код вместо изменения файла php.ini.
ini_set('upload_max_filesize', '64M');
ini_set('post_max_size', '64M');
ini_set('max_execution_time', 300);
Я даже пытался увеличить max_execution_time
. Тем не менее, у меня та же проблема. ini_set()
здесь не работает.