Я пытаюсь создать скрипт, в котором я разрешаю загружать только файлы .png, .jpeg и .gif, основываясь на типах MIME. То, что я до сих пор, это:
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;
}
Я был почти уверен, что это должно сработать. Но это всегда отголоски Not allowed!
в то время как я выбираю файлы с правильным типом MIME, что я здесь не так делаю? Код включает в себя проверку файлов в моей папке загрузки, которые уже имеют такое же имя, и в этом случае добавляет случайное число к имени файла.
Вы сравниваете список разрешенных с файлом name
не тип.
Тип файла будет содержаться в массиве применимых типов в:
$_FILES['image']['type']
Других решений пока нет …