使用PHP检测上传的文件类型

使用PHP检测上传的文件类型,php,file,upload,Php,File,Upload,我注意到,对于同一个文件,$\u FILES['file']['type']根据您是从windows客户端还是mac客户端上载而有所不同 我在服务器端使用PHP。我如何才能绝对确定文件类型?已经给出了一些答案,例如: 我想把它明确化,这是我找到的最有效的方法 1) 安装finfo库 2) 在$\u文件['file']['tmp\u name']上使用finfo函数 下面是我用来检测zip文件的函数 /** * Detect from the $_FILES['file'] array *

我注意到,对于同一个文件,
$\u FILES['file']['type']
根据您是从windows客户端还是mac客户端上载而有所不同


我在服务器端使用PHP。我如何才能绝对确定文件类型?

已经给出了一些答案,例如:

我想把它明确化,这是我找到的最有效的方法

1) 安装finfo库

2) 在$\u文件['file']['tmp\u 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小时进行故障排除