检测文件是否为图像

时间:2014-08-09 05:36:06

标签: php image file-upload upload

我有一个代码将图像上传到我的服务器但是在上传图像之前,代码通过检查其扩展名来检查上传的文件是否是图像(允许的扩展名是“jpg”,“png”和“gif”),但是我只是意识到这不够安全,因为我可以轻松地创建一个“file.php”并将其重命名为“file.png”,然后代码就不会阻止文件上传。有没有另一种方法来检测天气,文件是图像?

更新:我使用$ _FILES来获取图片。

3 个答案:

答案 0 :(得分:0)

嗯,你可以这样做:

$image = "myImage.jpg";// the path to the file name

$res = getimagesize($image);

if($res === true)
{
 // this is an image
}

getimagesize()是获取图像信息的功能。如果给定的文件名不是图像,则返回false,否则返回图像信息的数组,如宽度和高度。

如果要检查$_FILES超级数组中的图像,则应使用以下代码:

getimagesize($_FILES['file']['tmp_name'])

我假设您的文件输入名为“file”

答案 1 :(得分:0)

您只需使用getimagesize()

它会在非图像上返回大小的零。

答案 2 :(得分:0)

您也可以像$_FILES['file_upload']['type']

一样进行检查

示例:

 if($_FILES['file_upload']['type'] != 'image/png'){
       //message to inform the user
 }