我有一个服务器,人们可以向其上传文件。问题是一些文件名被破坏了(没有任何扩展名)所以我不能立即确定文件类型。这个问题分为两部分:对于确实有文件名的文件,确定它是否是图像的最佳方法是什么? (只是一个很长的if/else if列表?)其次,对于没有扩展名的文件,我如何确定它们是否是图像?
最佳答案
您可以使用 exif_imagetype()
<?php
$type =exif_imagetype($image);
$type 是一个值
- IMAGETYPE_GIF
- IMAGETYPE_JPEG
- IMAGETYPE_PNG
- IMAGETYPE_SWF
- IMAGETYPE_PSD
- IMAGETYPE_BMP
- IMAGETYPE_TIFF_II(英特尔字节顺序)
- IMAGETYPE_TIFF_MM(摩托罗拉字节顺序)
- IMAGETYPE_JPC
- IMAGETYPE_JP2
- IMAGETYPE_JPX
- IMAGETYPE_JB2
- IMAGETYPE_SWC
- IMAGETYPE_IFF
- IMAGETYPE_WBMP
- IMAGETYPE_XBM
- IMAGETYPE_ICO
来自手册:
当找到正确的签名时,将返回适当的常量值,否则返回值为 FALSE。返回值与 getimagesize()
在索引 2 中返回的值相同,但 exif_imagetype()
更快。
关于php - 确定文件是否为 PHP 图像的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8618580/