Intereting Posts
Предупреждение: mysql_fetch_array () ожидает, что параметр 1 будет ресурсом Как загрузить контроллер с другого контроллера в codeigniter? PHP, отображение изображения с заголовком () mysqli соединение не работает внутри функции? Как установить высоту таблицы в mpdf Как проверить, является ли строка допустимым именем XML-элемента? CodeIgniter: Освобожденная память Альтернатива Md5 в PHP? расширение laravel 5 встроенной аутентификации для входа в систему только "если пользователь == активен" file_get_html отображает Fatal Error Call для неопределенной функции Как получить доступ к переменной memer a с символом Должен ли я использовать статические классы и что является преимуществом (или недостатком)? Как отключить кнопку отправки после отправки в PHP? Как издеваться над встроенными функциями php socket? Как проверить, что файл, загруженный с помощью php, не содержит исполняемый двоичный файл?

Проверьте тип изображения, если он переименован из .png в .jpg

Если можно проверить, был ли тип изображения, если он был переименован из .png в .jpg ?

Мне нужно это, потому что, когда я использую функцию изменения размера, мой сайт перестает работать, если загруженное изображение было переименовано из .png в .jpg (я сделал свой код, чтобы принимать только изображения .jpg)

getimagesize будет содержать информацию о типе изображения:

 $info = getimagesize('file.png'); if($info[2] == IMAGETYPE_JPEG){ } 

Каждый .png начинается с этих байтов:

 89 50 4E 47 0D 0A 1A 0A 

Это подпись PNG. Если .jpg начинается с этих байтов, это не jpg.

Вы всегда можете прочитать тип изображения, чтобы проверить изображение с помощью exif_imagetype ()

 $image_type = exif_imagetype($filename); 

Пример:

 <?php if (exif_imagetype('image.gif') != IMAGETYPE_GIF) { echo 'The picture is not a gif'; } ?> 

Да, вы можете использовать это

 if($_FILES["imagefile"]["type"] == "image/jpeg") { return true; } else if($_FILES["imagefile"]["type"] == "image/png") { return false; } 

Или вы должны использовать этот mime_content_type, более надежный, потому что $_FILES["imagefile"]["type"] можно подделать с клиентской стороны …

Да, проверьте магический номер файла

Что вам нужно знать, это не история файла, а его реальный формат. Вы можете это сделать, изучив содержимое файла: файлы JPG должны начинаться с байтов FF D8 и заканчиваться FF D9. Файлы PNG начинаются с другой подписи: \ 211 PNG \ r \ n \ 032 \ n (в шестнадцатеричном виде: 89 50 4E 47 0D 0A 1A 0A).

См. Этот веб-сайт для получения дополнительной информации: http://en.wikipedia.org/wiki/Magic_number_%28programming%29

Попробуйте file команду file .

Когда unknownimage является JPG-изображением:

 $ file unknownimage unknownimage: JPEG image data, baseline, precision 8, 400x400, frames 3 

Когда файл unknownimage является PNG-изображением:

 $ file unknownimage unknownimage: PNG image data, 779 x 701, 8-bit/color RGBA, non-interlaced