Подтвердить что ты не робот

$ _FILE upload large file дает ошибку 1, хотя upload_max_size больше размера файла

У меня есть простая форма загрузки:

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.

Кто-нибудь знает, что происходит?

4b9b3361

Ответ 1

Я думаю, что это из-за опечатки. Вместо

upload_max_filesize = 7MB

он должен читать

upload_max_filesize = 7M

снова используйте phpinfo(), чтобы проверить, какое значение действительно применяется.

Ответ 2


Вам также нужно установить post_max_size в "php.ini"

Ответ 3

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 } для печати вышеуказанных сообщений об ошибках.

Ответ 4

Вот большая ошибка, которую я сделал:

Если вы хотите загружать действительно большие файлы, вы должны установить KeepAliveTimeout выше, чем значение по умолчанию 5.

Например:

KeepAliveTimeout 300

Вы можете найти это свойство в /etc/apache2/apache2.conf

Ответ 5

goto W HM->Service Configuration->PHP Configuration Editor и обновите значение upload_max_filesize.