2013-09-20 2 views
0

Я использую простой, если другое заявление, чтобы разрешить конкретный тип файла для загрузкиПроблема с разрешительными отдельными расширениями

$file_type = $_FILES["userfile"]["type"]; 

$allowed = array("image/jpeg", "image/gif", "application/pdf"); 

if(!in_array($file_type, $allowed)){ } else{ $err .= "not allowed"; return 0; } 

Но это не работает.

Есть ли альтернативный способ разрешить только файлы определенного типа?

+2

Похоже, ваша логика назад ... Ваш '$ allowed' массив используется в качестве черного списка. – Jasper

+0

Я с Jasper на этом, у вас есть 'if (! In_array ($ file_type, $ allowed))'. Это означает, что условие if не будет срабатывать, если тип файла НЕ находится в массиве '$ allowed'. Удалите '!' Для стартеров: D – Jason

+0

@rid Что вы предложите вместо этого? – Fredd

ответ

0

Расширение FileInfo PECL может быть лучше всего для обнаружения типов файлов. Вот ссылки на документацию:

http://www.php.net/manual/en/function.finfo-file.php

пример использования:

$finfo = new finfo(FILEINFO_MIME); 
$mime_type = finfo_file($finfo, $filename); 
finfo_close($finfo); 

 Смежные вопросы

  • Нет связанных вопросов^_^