获取图像扩展名


Get image extension

我想要上传图像扩展。

正如我所知,最好的方法是getimagesize()函数。

但该函数的mime在图像具有.jpg.JPEG扩展名时返回image/jpeg

如何获得确切的延期?

$ext = pathinfo($filename, PATHINFO_EXTENSION);

您可以使用image_type_to_extension函数和getimagesize:返回的图像类型

$info = getimagesize($path);
$extension = image_type_to_extension($info[2]);

您还可以使用strrpos和substr函数来获取任何文件的扩展名

$filePath="images/ajax-loader.gif";
$type=substr($filePath,strrpos($filePath,'.')+1);
echo "file type=".$type;

输出:gif

如果你想要像.gif 这样的扩展

$type=substr($filePath,strrpos($filePath,'.')+0);

输出:.gif

$image = explode(".","test.file.hhh.kkk.jpg");
echo end($image);

还有一种方法:

$ext = strrchr($filename, "."); // .jpg
$file_ext = pathinfo($_FILES["file"]["name"], PATHINFO_EXTENSION);

或使其清洁

$filename= $_FILES["file"]["name"];
$file_ext = pathinfo($filename,PATHINFO_EXTENSION);

您还可以用点分解文件名,并取数组的末尾,如下所示:

$ext = end(explode('.', 'image.name.gif'));

根据:在PHP 中查找文件扩展名的两种不同方法

还有一种新的方式:

$ext = explode('.', 'file.name.lol.lolz.jpg');
echo $ext[count($ext) - 1];

对于那些想要检查图像类型是否为JPEG、PNG等的人,您可以使用exif_imagetype函数。此函数读取图像的第一个字节并检查其签名。以下是php.net中的一个简单示例:

<?php
if (exif_imagetype('image.gif') != IMAGETYPE_GIF) {
   echo 'The picture is not a gif';
}
?>
$size = getimagesize($filename);
$ext = explode('/', $size['mime'])[1];