在接受文件之前,我希望确认实际文件与文件扩展名匹配。要这样做,我会做以下事情:
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mime=finfo_file($finfo, $filename);
$ext=getExtFromMime($mime); //Simple switch lookup table
if($ext==pathinfo($filename, PATHINFO_EXTENSION)) {//File is okay}
else {//file is bad}
除了与Microsoft文件相关的问题之外,您是否发现此方法存在任何问题?
PHP finfo_file()用于为MS Word 2007,Excel 2007和PowerPoint 2007文件提供相同的mime“application / zip”类型。然后,PHP> = 5.3.11和> = 5.4.1将返回的mime类型从“application / zip”更改为2003 mimes
但是,这三种文件类型的正确mime类型如下:
如何获取2007文件的正确mime类型,以便确认它们与文件类型匹配?