我注意到,对于同一个文件,$_FILES['file']['type']
会有所不同,具体取决于您是从Windows客户端还是Mac客户端上传。
我在服务器端使用PHP。我怎样才能完全确定文件类型?
答案 0 :(得分:0)
已经给出了一些答案,例如: :https://stackoverflow.com/a/6755263/80353
我想明确说明我找到的最佳方式。
1)安装finfo库
http://us1.php.net/manual/en/fileinfo.installation.php
2)使用$ _FILES ['file'] ['tmp_name']
上的finfo函数下面是我用来检测zip文件的函数。
/**
* Detect from the $_FILES['file'] array
*
* @param Array $data is the $_FILES['file'] array
* @return boolean Return true if uploaded file is a zip file
*/
public function isZip($data = null) {
if ($data == null) {
$data = $_FILES['file'];
}
$tmpname = $data['tmp_name'];
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mimetype = finfo_file($finfo, $tmpname);
if($mimetype == 'application/zip') {
return true;
}
return false;
}
我希望能够阻止其他PHP开发人员犯同样的错误并花费2个小时进行故障排除。