PHP 判断一个文件是否为图片类型

在PHP中我们经常要使用到针对用户上传的图片的处理,比如用户头像、商品图片等,要控制使用者上传的文件是一个图片类型而不能是随便的一个文件格式,如果不进行控制不仅系统可能存在安全隐患,而且对于业务逻辑来说也没有处理完善。此文档总结如何在PHP中判断一个文件是否为图片类型的多种方法的使用

W3CAPI
1
2020-04-23 08:24:27
文档目录
我的书签
 

PHP 使用 exif_imagetype函数 来判断文件是否为图片类型

通过文档可以了解到 exif_imagetype函数用于判断一个图像的类型,它读取一个图像的第一个字节并检查其签名。 如果发现了正确的签名则返回一个对应的常量,否则返回 FALSE。返回值和 getimagesize() 返回的数组中的索引 2 的值是一样的,但该函数的执行效率要高很多。实现代码如下:
function  isImage($filepath) {
    if ( !function_exists("exif_imagetype") ) {
        throw new Exception("php_exif 扩展未开启");
    }
    $mimetype = exif_imagetype($filepath);
    if ($mimetype == IMAGETYPE_GIF || $mimetype == IMAGETYPE_JPEG || $mimetype == IMAGETYPE_PNG || $mimetype == IMAGETYPE_BMP) {
       return $mimetype;
    }
    return false;
}
最后附上exif_imagetype函数返回值的常量定义:
常量值 常量名称
1 IMAGETYPE_GIF
2 IMAGETYPE_JPEG
3 IMAGETYPE_PNG
4 IMAGETYPE_SWF
5 IMAGETYPE_PSD
6 IMAGETYPE_BMP
7 IMAGETYPE_TIFF_II(Intel 字节顺序)
8 IMAGETYPE_TIFF_MM(Motorola 字节顺序)
9 IMAGETYPE_JPC
10 IMAGETYPE_JP2
11 IMAGETYPE_JPX
12 IMAGETYPE_JB2
13 IMAGETYPE_SWC
14 IMAGETYPE_IFF
15 IMAGETYPE_WBMP
16 IMAGETYPE_XBM
友情提示