2012-04-09 2 views
-2

Можно создать дубликат:
How can I only allow certain filetypes on upload in php?Php Допускаемая загружено расширение файла

я учусь PHP и Mysql. Я хочу создать функцию, которая позволяет только определенное расширение файла, которое будет загружено пользователем. Как ..

$whitelist = array("jpg","jpeg","gif","png","bmp","pdf"); 

Так как я могу проверить это расширение файла php. Может ли кто-нибудь сказать мне, пожалуйста. Спасибо.

+0

http://php.net/pathinfo – hakre

ответ

2

Это вариант:

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)); 
} 

С уважением!

+0

нужно сказать, что вам нужно вызвать 'checkFormat ($ _ FILES [" fieldname "])' – Stefan

+0

$ source означает $ _FILE ['file'] ['tmp_name']; ? – user1295995

+0

OH! .. Я понимаю .. – user1295995

2

Получить расширение файла загруженного файла с pathinfo­Docs как

$extension = pathinfo($filename, PATHINFO_EXTENSION); 

, а затем проверить на белый список разрешенных exentsions

$allowedExtensions = array("jpg","jpeg","gif","png","bmp","pdf"); 
$isAllowed = in_array($extension, $allowedExtensions); 

может быть, вам нужно изменить расширение признать функцию, чтобы получить некоторые специальные расширения, такие как tar.gz, но это должно сделать трюк.

Редактировать: Как указано here, вы не должны проверять расширение файла, но тип mime.

+1

Забудьте о взрыве, есть ['pathinfo'] (http://php.net/pathinfo);) – hakre

+0

hakre: ты мужчина! :) мой метод был довольно «быстрым и грязным»;) – Stefan

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