为什么在使用不同的PC但是具有相同的configuration时MIMEtypes不同?

我创build了一个函数来检查和导入的Excel文件的文件扩展名。 我已经在两台不同的电脑上运行同一个源码。

PC-1configuration:

  • Win 7 64bit
  • XAMPP与PHP 7.0.x
  • 浏览器Google Chrome
  • 安装了Microsoft Office 2013

PC-2configuration:

  • 赢10 64位
  • XAMPP与PHP 7.1.x
  • 浏览器Google Chrome
  • 安装了Open Office。 不要安装MS Office

我的Excel文件是由Google Spreadsheet创build的,并作为扩展名为.xlsx的MS Office文件导出。

在PC-1中,当我debugging$_FILES['file']['type']; 值我得到的扩展名:

 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' 

然而在PC-2上,我收到了:

 'application/octet-stream' 

我的问题是:为什么使用相同的源文件,相同的导入文件,只是不同的环境,debugging输出显示不同的文件扩展名? 是安装MS Office的原因?

这是因为Microsoft Office没有安装在PC 2上。
所以它不知道如何解释。
八位字节stream是最后一次尝试解释。
这篇文章更详细,有一种方法可以调整registry,也许达到相同的结果。