我正在尝试允许安全上传文件,我使用php 5.3 Fileinfo来做到这一点。这使用了Centos系统上的magic.mime文件。
问题是TTF字体、OTF、EOT、SVG。。。文件不会被识别为这样,它默认返回到"application/octet流"作为mime类型。
这对我来说不安全,因为这可能只是任何文件,如可执行文件。我的问题是:我能得到一个包含上述文件定义的magic.mime文件吗?甚至更好:是否有一种一致的方法或方法可以将新的mime类型添加到magic.mme文件中,以便我们在检查新类型的文件时可以轻松地扩展此文件。
我搜索了一下提供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没有安装最新的FILE包,所以我无法以这种方式更新文件。
我还有一个文件-4.17,它使用/usr/share/file/magic。我无法更新file命令,并且PEARmime_type使用了与PHP fileinfo相同的魔术。所以,我找到的唯一解决方案是编辑magic.mime(备份后)并手动添加无法识别的类型(在我的情况下是FLV)。然后你需要做一个file -C -m magic.mime
来编译它