腓允许上传的文件扩展名
可能重复:
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