2012-04-09 102 views

回答

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 2012-04-09 08:05:31

+0

$ source意味着$ _FILE ['file'] ['tmp_name']; ? – user1295995 2012-04-09 08:06:40

+0

OH!..我明白了.. – user1295995 2012-04-09 08:08:20

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 2012-04-09 08:13:36

+0

hakre:你是男人! :)我的方法是相當「快速和骯髒」;) – Stefan 2012-04-09 08:19:31

相關問題