Разрешить загрузку только файлов изображений на мой сервер с переполнением стека

Я пытаюсь создать скрипт, в котором я разрешаю загружать только файлы .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, что я здесь не так делаю? Код включает в себя проверку файлов в моей папке загрузки, которые уже имеют такое же имя, и в этом случае добавляет случайное число к имени файла.

0

Решение

Вы сравниваете список разрешенных с файлом nameне тип.

Тип файла будет содержаться в массиве применимых типов в:

$_FILES['image']['type']
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]