我试图在将文件上传到服务器之前使用 finfo 来确定文件是否是图像文件。我的问题是,下面的代码仅适用于 jpeg,但我也允许使用其他文件类型。所以我有两个问题:
问题一:
如何使用 finfo 检查多种文件类型,例如 gif、tiff、png、ico 等。
问题2:我是否需要使用其他验证方法来检查是否是图像或者我下面得到的是否足够?
下面是代码:
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mimetype = image_type_to_mime_type(exif_imagetype('/path/to/file.jpg'));
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/tiff")
|| ($_FILES["file"]["type"] == "image/png")
|| ($_FILES["file"]["type"] == "image/bmp")
|| ($_FILES["file"]["type"] == "image/ico")
{
if ($finfo !== FALSE){
move_uploaded_file($_FILES["fileImage"]["tmp_name"],
"ImageFiles/" . $_FILES["fileImage"]["name"]);
$result = 1;
@finfo_close($finfo);
}
}