2012-04-09 95 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

相关问题