2011-06-02 84 views
6

我想允許文件的安全上傳,我使用php 5.3 Fileinfo來做到這一點。這在我們的Centos系統上使用magic.mime文件。如何在Linux上擴展magic.mime

問題是,TTF字體,OTF,EOT,SVG,...文件不能被識別,並且默認回到「application/octet-stream」作爲MIME類型。

這對我來說並不安全,因爲這可以是任何文件,如可執行文件。 我的問題是:我可以得到一個magic.mime文件,其中包含上述文件的定義,甚至更好:是否有一個一致的方法或方法來將新的MIME類型自己添加到magic.mime文件中,以便我們可以輕鬆擴展文件,當我們想檢查一個新類型的文件。

我做什麼包搜索提供magic.mime文件:

yum whatprovides "/usr/share/magic.mime" 

Name  : file 
Arch  : i386 
Version : 4.17 
Release : 15.el5_3.1 
Size  : 1.6 M 
Repo  : installed 
Summary : A utility for determining file types. 
URL  : http://www.darwinsys.com/file/ 

的問題是,這樣我就可以不更新的文件這樣的CentOS沒有安裝最新的文件包。

+0

你看到嘗試這個http://wiki.horde.org/MimeMagic – 2011-06-02 12:52:27

+0

就我所見,這只是如何使用fileinfo。這部分工作完美,只是缺少某些文件類型的magic.mime文件 – Jorre 2011-06-02 15:46:25

+0

我遇到了同樣的問題。自從那個問題在幾個月前發佈以來,也許你從那以後找到了解決方案? – Shtong 2011-10-22 10:14:26

回答

1

我也有使用/ usr/share/file/magic的文件4.17。我無法更新文件命令,PEAR mime_type使用與PHP fileinfo相同的魔術。所以,我發現唯一的解決方案是編輯magic.mime(在備份之後)並手動添加無法識別的類型(在我的情況下爲FLV)。然後你需要做一個file -C -m magic.mime來編譯它。還有另一個涵蓋同一過程的stackoverflow主題:How to create a custom magic file database