Я использую следующее для определения ВНЕШНЕГО расширения изображения:
$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
Каким будет расширение на изображении, подобном этому?Как я могу вернуть истинное расширение?
Спасибо!
Если вы уверены, что рассматриваемый файл на самом деле является изображением, вы можете использовать getimagesize () или exif_imagetype () , чтобы определить тип изображения, с которым вы работаете с. Затем вы можете сопоставить это с соответствующим расширением имени файла.
Будьте осторожны, вы не можете быть уверены, что произойдет, если вы вызовете эти функции для файлов, которые не являются изображениями.
только для пользы .. другой подход:
$newFileName = $_FILES['userfile']['name']; $fileExt =substr(strrchr($newFileName,'.'),1);
Пожалуйста, попробуйте этот код.
$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... }