Поиск истинного расширения изображений с помощью pathinfo () - PullRequest
1 голос
/ 05 января 2012

Я использую следующее для определения ВНЕШНЕГО расширения изображения:

        $url = (POST_IMAGESELECTOR);
        $path_parts = pathinfo($url);
        $extension = $path_parts['extension'];

Все изображения получены из различных внешних источников.Приведенный выше пример работает в 80% случаев, но не получается, когда я сталкиваюсь с изображением без традиционного расширения.Примером может служить изображение, расположенное здесь:

http://media.kohls.com.edgesuite.net/is/image/kohls/227522?wid=1000&hei=1000&op_sharpen=1

Каким будет расширение на изображении, подобном этому?Как я могу вернуть истинное расширение?

Спасибо!

Ответы [ 3 ]

1 голос
/ 05 января 2012

Если вы уверены, что рассматриваемый файл на самом деле является изображением, вы можете использовать getimagesize () или exif_imagetype () , чтобы определить тип изображения, с которым вы работаете с. Затем вы можете сопоставить это с соответствующим расширением имени файла.

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

0 голосов
/ 30 августа 2016

только для пользы .. другой подход:

$newFileName = $_FILES['userfile']['name'];
$fileExt =substr(strrchr($newFileName,'.'),1);
0 голосов
/ 05 января 2012

Пожалуйста, попробуйте этот код.

$url = (POST_IMAGESELECTOR);
list($width, $height, $type, $attr) = getimagesize($url);
$imageType = image_type_to_mime_type($type);
witch($imageType) {
    case "image/jpeg":
        // your actions go here...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...