2011-06-02 85 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