php file upload странная ошибка - PullRequest
1 голос
/ 23 января 2012

Почему php выдает ошибку при загрузке файла?

<?php

   if($_FILES["filename"]["size"] > 1024*25*1024)
   {
     $message = 'file must be less, than 25 mb';
     exit;
   }

   if(is_uploaded_file($_FILES["filename"]["tmp_name"]))
   {

     move_uploaded_file($_FILES["filename"]["tmp_name"], "share/".$_FILES["filename"]["name"]);

     $message = 'succesfull!';
   } else {
      $message = 'Error upload file';
   }


?>

форма с enctype = 'multipart / form-data'

в php.ini у меня есть

upload_max_file_size: 25 МБ Max_post_data = 25 МБ upload_tmp_dir = / tmp

Почему это не работает?

Ответы [ 3 ]

3 голосов
/ 23 января 2012

Если вы выполните print_r для $ _FILES, вы увидите код ошибки.Значение кода ошибки можно найти здесь:

http://www.php.net/manual/en/features.file-upload.errors.php

0 голосов
/ 17 декабря 2016

Убедитесь, что ваши настройки php.ini выглядят так:

upload_max_file_size=25M

Распространенные ошибки:

upload_max_file_size = 0.25M     // Must be an integer

upload_max_file_size = 25M       // No spaces around equal sign

upload_max_file_size=25MB        // Use M not MB

;upload_max_file_size=25M        // Semicolon in front comments out the line.

Перезагрузите сервер после изменения php.ini.

Ссылка: http://php.net/manual/en/faq.using.php#faq.using.shorthandbytes

0 голосов
/ 23 января 2012

если длина вашего контента превышает максимальный размер сообщения, вам следует использовать обработчик исключений или поместить этот код в верхний код.

if ($_SERVER['REQUEST_METHOD']=='POST' && empty($_POST) && isset($_SERVER['CONTENT_TYPE']) && substr($_SERVER['CONTENT_TYPE'],0,19)=='multipart/form-data')
{
    if ($_SERVER['CONTENT_LENGTH']>1024*1024*25)
    {
        $message = 'file must be less, than 25 mb';
                exit;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...