проверка php странного изображения - PullRequest
0 голосов
/ 15 апреля 2011

У меня есть этот скрипт для проверки изображения.прекрасно работает с изображениями размером 500 КБ или 1,5 МБ, например, но если я попробую с изображениями размером 4 МБ или 6, например, выведите ошибку «Неверный формат», а не «большой размер».Почему?

$imageData = @getimagesize($_FILES["userfile"]["tmp_name"]);

        if($imageData === FALSE || !($imageData[2] == IMAGETYPE_GIF || $imageData[2] == IMAGETYPE_JPEG || $imageData[2] == IMAGETYPE_PNG)) {
            echo "<li>Invalid format</li>";
            die();
        }
        else {
            if($_FILES["userfile"]["size"] >= 2000000) {
                echo "<li>The size large</li>";
                die();
            }
                else {
           //mystuff
}

спасибо

Ответы [ 3 ]

1 голос
/ 15 апреля 2011

Вы не проверяете, удалась ли загрузка файла.PHP имеет ограничение памяти, которое применяется к загруженным файлам, и ваши «большие» изображения, скорее всего, превышают этот предел.Вы должны проверить загрузки следующим образом:

if ($_FILES['userfile']['error'] === UPLOAD_ERR_OK) {
   ... uploaded ok ...
} else
   echo "File upload failed on 'userfile' with error: " . $_FILES['userfile']['error'];
}
1 голос
/ 15 апреля 2011

Вы также можете проверить свои post_max_size и upload_max_filesize в php.ini.Если файлы, которые вы пытаетесь загрузить, слишком велики, я считаю, что массив _FILES заполняться не будет.

0 голосов
/ 15 апреля 2011

использовать $ _FILES ['size'] .. getimagesize очень медленно для больших изображений

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...