我有一个代码将图像上传到我的服务器但是在上传图像之前,代码通过检查其扩展名来检查上传的文件是否是图像(允许的扩展名是“jpg”,“png”和“gif”),但是我只是意识到这不够安全,因为我可以轻松地创建一个“file.php”并将其重命名为“file.png”,然后代码就不会阻止文件上传。有没有另一种方法来检测天气,文件是图像?
更新:我使用$ _FILES来获取图片。
答案 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
}