可能重複:
How can I only allow certain filetypes on upload in php?腓允許上傳的文件擴展名
我學習PHP和MySQL。我想創建一個功能,只允許用戶上傳的特定文件擴展名。喜歡..
$whitelist = array("jpg","jpeg","gif","png","bmp","pdf");
那麼如何檢查這個具體的文件擴展名與PHP。誰能告訴我請.. 謝謝。
可能重複:
How can I only allow certain filetypes on upload in 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));
}
商祺!
需要說你需要調用'checkFormat($ _ FILES [「fieldname」])' – Stefan 2012-04-09 08:05:31
$ source意味着$ _FILE ['file'] ['tmp_name']; ? – user1295995 2012-04-09 08:06:40
OH!..我明白了.. – user1295995 2012-04-09 08:08:20
獲取上傳文件的文件擴展名與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類型。
看看這裏: http://www.w3schools.com/php/php_file_upload.asp
它提供了展示如何做到這一點的例子。
Obligatory http://w3fools.com/ – dtech 2012-04-09 08:11:11
http://php.net/pathinfo – hakre 2012-04-09 08:12:47