Ответ 1
Я думаю, что это из-за опечатки. Вместо
upload_max_filesize = 7MB
он должен читать
upload_max_filesize = 7M
снова используйте phpinfo()
, чтобы проверить, какое значение действительно применяется.
У меня есть простая форма загрузки:
enctype="multipart/form-data"/>
и
input type="hidden" name="MAX_FILE_SIZE" value="5900000" />
И следующие параметры, которые применяются (проверяются через phpini()) в php.ini:
upload_max_filesize = 7MB
memory_limit = 64M
post_max_size = 8MB
Я пытаюсь загрузить небольшой файл - 500 тыс., и он проходит через
Я пытаюсь загрузить файл размером 5 МБ (меньше, чем настройки upload_max_filesize
и post_max_size
), и он не работает с кодом ошибки 1: он говорит:
UPLOAD_ERR_INI_SIZE Значение: 1; Загруженный файл превышает директиву upload_max_filesize в php.ini.
Кто-нибудь знает, что происходит?
Я думаю, что это из-за опечатки. Вместо
upload_max_filesize = 7MB
он должен читать
upload_max_filesize = 7M
снова используйте phpinfo()
, чтобы проверить, какое значение действительно применяется.
Вам также нужно установить post_max_size
в "php.ini"
upload_max_filesize = 7M
Здесь значение похоже на 7M
или 10M
но не на MB
.
phpinfo()
используйте phpinfo()
чтобы проверить, какое значение действительно было применено.
Используйте код ниже, чтобы понять, в чем проблема. Если размер файла является проблемой, он просто распечатывает put, как превышает директиву upload_max_filesize
в php.ini
<?php
$error_types = array(
1 => 'The uploaded file exceeds the upload_max_filesize directive in php.ini.',
'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.',
'The uploaded file was only partially uploaded.',
'No file was uploaded.',
6 => 'Missing a temporary folder.',
'Failed to write file to disk.',
'A PHP extension stopped the file upload.'
);
// Outside a loop...
if ($_FILES['userfile']['error'] == 0) {
// here userfile is the name
// i.e(<input type="file" name="*userfile*" size="30" id="userfile">
echo "no error ";
} else {
$error_message = $error_types[$_FILES['userfile']['error']];
echo $error_message;
}
?>
Этим мы легко можем идентифицировать проблему. Мы также можем использовать switch(){ case }
для печати вышеуказанных сообщений об ошибках.
Вот большая ошибка, которую я сделал:
Если вы хотите загружать действительно большие файлы, вы должны установить KeepAliveTimeout
выше, чем значение по умолчанию 5
.
Например:
KeepAliveTimeout 300
Вы можете найти это свойство в /etc/apache2/apache2.conf
goto W HM->Service Configuration->PHP Configuration Editor
и обновите значение upload_max_filesize
.