2017-03-10 94 views
4

我創建了一個函數來檢查導入的Excel文件的文件擴展名。我在兩臺不同的PC上運行相同的源代碼。爲什麼在使用不同的PC但具有相同的配置時MIME類型不同?

PC-1配置:

  • 的Win 7 64位
  • XAMPP與PHP的7.0.x
  • 瀏覽器谷歌瀏覽器
  • 的Microsoft Office 2013安裝

PC -2配置:

  • 10場64位
  • XAMPP與PHP 7.1.x
  • 瀏覽器谷歌瀏覽器
  • 打開Office安裝。未安裝MS Office

我的Excel文件是由Google Spreadsheet創建的,並導出爲擴展名爲.xlsx的MS Office文件。

在PC-1,當我調試$_FILES['file']['type'];值,我得到了擴展:

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

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

'application/octet-stream' 

我的問題是:爲什麼有相同源,相同的導入文件,只是不同的環境,調試輸出顯示不同的文件擴展名?安裝MS Office的原因是什麼?

+0

它是報告MIME類型的服務器端,因此它與安裝在客戶端的軟件無關。 – Raptor

+0

感謝Leigh修復我的英語錯誤。猛禽:那麼這種情況的原因是什麼? – TommyDo

+1

我想這是關於PHP 7.1和7.0的區別。你可以使用[finfo_file()](http://php.net/manual/ro/function.finfo-file.php)再次驗證MIME類型嗎? – Raptor

回答

0

這是因爲Microsoft office沒有安裝在PC 2上。
因此它不知道如何解釋。
Octet-stream是解讀的最後一次嘗試。
post進入更多的細節,有一種方法可以調整註冊表,也許實現相同的結果。

相關問題