可能重复:
How can I only allow certain filetypes on upload in php?
我正在学习PHp和Mysql。我想创建一个只允许用户上传的特定文件扩展名的功能。像..
$whitelist = array("jpg","jpeg","gif","png","bmp","pdf" );
那么我如何用php检查这个特定的文件扩展名。有谁能告诉我.. 谢谢。
答案 0 :(得分: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));
}
问候!
答案 1 :(得分:2)
$extension = pathinfo($filename, PATHINFO_EXTENSION);
然后检查允许的exntsions白名单
$allowedExtensions = array("jpg","jpeg","gif","png","bmp","pdf");
$isAllowed = in_array($extension, $allowedExtensions);
也许您需要修改扩展识别功能以获得一些特殊扩展,例如tar.gz,但这应该可以解决问题。
编辑:如上所述here,您不应该检查文件扩展名,而是检查mime-type。
答案 2 :(得分:0)
看这里: http://www.w3schools.com/php/php_file_upload.asp
它提供了一个示例,说明了如何执行此操作。