我使用以下命令来检测外部图像的扩展名:
$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()来确定您正在处理的图像类型。然后,您可以将其映射到适当的文件扩展名。
要小心,如果你在非图像文件上调用这些函数,你不能确定会发生什么。
请尝试此代码
$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...
}
只为利益着想。另一种方法:
$newFileName = $_FILES['userfile']['name'];
$fileExt =substr(strrchr($newFileName,'.'),1);