我正在尝试制作一个脚本,我只允许根据MIME类型上传.png,.jpeg和.gif文件。到目前为止我所拥有的是:
if(file_exists($root."/upload/gallery/".$_FILES["image"]["name"]))
{
$filename = explode(".",$_FILES['image']['name']);
$randomnumber = rand(0, 10000);
$imageName = $filename[0].$randomnumber.".".$filename[1];
}
else
{
$imageName = $_FILES['image']['name'];
}
$image = mysql_real_escape_string(htmlspecialchars("/upload/gallery/".$imageName));
$allowed = array('image/jpeg', 'image/png', 'image/gif');
if(in_array($_FILES['image']['name'], $allowed)){
echo "Allowed!";
die;
}
else {
echo "Not allowed!";
die;
}
我几乎可以肯定这应该有效。但是当我选择具有正确MIME类型的文件时,它总是回显Not allowed!
,我在这里做错了什么?该代码包括检查我的上传文件夹中已经具有相同名称的文件,如果是这样,则在文件名中添加一个随机数。
答案 0 :(得分:2)
您正在将允许列表与文件name
进行比较,而不是类型。
文件的类型将包含在以下适用类型的数组中:
$_FILES['image']['type']