我目前有一个过滤系统如下:
// Check to see if the type of file uploaded is a valid image type
function is_valid_type($file)
{
// This is an array that holds all the valid image MIME types
$valid_types = array("image/jpg", "image/JPG", "image/jpeg", "image/bmp", "image/gif", "image/png");
if (in_array($file['type'], $valid_types))
return 1;
return 0;
}
但我被告知最好自己检查文件类型,我如何使用getimagesize()以类似的方式检查文件类型?
答案 0 :(得分:10)
getimagesize()
返回一个包含7个元素的数组。数组的索引2包含一个IMAGETYPE_XXX
常量,表示图像的类型。
使用getimagesize()提供的功能相当于
function is_valid_type($file)
{
$size = getimagesize($file);
if(!$size) {
return 0;
}
$valid_types = array(IMAGETYPE_GIF, IMAGETYPE_JPEG, IMAGETYPE_PNG, IMAGETYPE_BMP);
if(in_array($size[2], $valid_types)) {
return 1;
} else {
return 0;
}
}
答案 1 :(得分:1)
您可以使用以下
$img_info = getimagesize($_FILES['image']['tmp_name']);
$mime = $img_info['mime']; // mime-type as string for ex. "image/jpeg" etc.
答案 2 :(得分:1)
首先检查getimagesize
是否返回false
。如果是,则该文件不是可识别的图像格式(或根本不是图像)。
否则,获取返回数组的索引2并通过image_type_to_mime_type
运行它。这将返回一个字符串,如“image / gif”等。有关详细信息,请参阅docs。