我需要在上传时检查文件的类型,以确保它是图像。我正在考虑的是检查MIME文件类型(来自$_FILE
),然后检查扩展名。类似的东西:
function checkType($file){
$ext = pathinfo($_FILES[$file]['name'], PATHINFO_EXTENSION);
$mime = $_FILES[$file]['type'];
if($mime == "image/jpg" || $mime == "image/jpeg"){
if($ext == "jpg" || $ext == "jpeg"){
return true;
} else{
return false;
}
}
if($mime == "image/gif"){
if($ext == "gif"){
return true;
} else{
return false;
}
}
if($mime == "image/png"){
if($ext == "png"){
return true;
} else{
return false;
}
}
}
这是一个好方法吗?建议?
另外,在最终上传到服务器之前,如何获取图像的宽度呢?
答案 0 :(得分:3)
您永远不应该依赖$_FILE
提供的内容类型,因为它是由浏览器设置的,而不是您的服务器。
如果您期待图片,则应使用getimagesize()
来获取图片类型。
示例:强>
$imagedata = getimagesize($_FILES['image']['tmp_name']);
$mime = $imagedata['mime'];
然后,您应该确保$mime
不为空,并且它包含您想要的mime类型。
以下是使用Google徽标的示例:http://codepad.viper-7.com/9GBDf9
答案 1 :(得分:2)
尝试像getimagesize这样的功能。如果它将返回有效数据,那么你有一个图像。