使用PHP确认文件类型与扩展名匹配(MS Word,Excel和PowerPoint出现问题)

时间:2013-01-11 13:44:02

标签: php mime-types

在接受文件之前,我希望确认实际文件与文件扩展名匹配。要这样做,我会做以下事情:

$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

  • 应用程序/ msword
  • 应用/ vnd.ms-Excel中
  • 应用/ vnd.ms-简报)。

但是,这三种文件类型的正确mime类型如下:

  • 应用/ vnd.openxmlformats-officedocument.wordprocessingml.document
  • 应用/ vnd.openxmlformats-officedocument.spreadsheetml.sheet
  • 应用/ vnd.openxmlformats-officedocument.presentationml.presentation

如何获取2007文件的正确mime类型,以便确认它们与文件类型匹配?

0 个答案:

没有答案