Возможный дубликат:
Как я могу разрешить определенные типы файлов при загрузке в php?
Я изучаю PHP и Mysql. Я хочу создать функцию, которая позволяет только определенное расширение файла, которое будет загружено пользователем. Подобно..
$whitelist = array("jpg","jpeg","gif","png","bmp","pdf" );
Итак, как я могу проверить это расширение файла php. Может кто-нибудь сказать мне, пожалуйста .. Спасибо.
Это вариант:
function checkFormat($source){ $whitelist = array("jpg","jpeg","gif","png","bmp","pdf" ); $type=""; if(version_compare('4.3.0', PHP_VERSION) > 0){ $type=mime_content_type($source['tmp_name']); }else{ $type=$source['type']; } return (in_array($type, $whitelist)); }
С уважением!
Получите расширение файла загруженного файла с pathinfo
файлов pathinfo
таких как
$extension = pathinfo($filename, PATHINFO_EXTENSION);
а затем проверить белый список разрешенных ограничений
$allowedExtensions = array("jpg","jpeg","gif","png","bmp","pdf"); $isAllowed = in_array($extension, $allowedExtensions);
возможно, вам нужно изменить функцию распознавания расширения, чтобы получить некоторые специальные расширения, такие как tar.gz, но это должно сделать трюк.
Изменить: Как сказано здесь, вы не должны проверять расширение файла, но тип mime.
Смотрите здесь: http://www.w3schools.com/php/php_file_upload.asp
Это пример, который показывает, как это сделать.