有没有办法确保收到的文件中包含图像PHP?
PHP
对扩展程序的测试对我来说并不十分安全,因为您可以上传一个script并将其扩展名更改为所需的扩展名。
script
我也尝试使用getimagesize,但是可能有一些更适合该特定问题的东西。
getimagesize
获取mimetype的本机方法:
对于PHP <5.3,请使用mime_content_type()对于PHP> = 5.3,请使用finfo_open()或mime_content_type()
获得MimeType的替代方法是exif_imagetype和getimagesize,但是这些方法依赖于安装适当的库。此外,它们可能仅返回图像模仿类型,而不是magic.mime中给出的整个列表。
虽然mime_content_type可以从PHP 4.3获得并且是FileInfo扩展的一部分(自PHP 5.3起默认启用,但Windows平台除外,该平台必须手动启用
mime_content_type
如果您不想打扰系统上可用的功能,只需将所有四个函数包装到一个代理方法中,该方法将函数调用委托给任何可用的方法,例如
function getMimeType($filename) { $mimetype = false; if(function_exists('finfo_open')) { // open with FileInfo } elseif(function_exists('getimagesize')) { // open with GD } elseif(function_exists('exif_imagetype')) { // open with EXIF } elseif(function_exists('mime_content_type')) { $mimetype = mime_content_type($filename); } return $mimetype; }