PHP 5.3.5 fileinfo()MS Office 2007文件的MIME类型
在PHP上传中,我试图验证正在上传的文件的MIME类型,以匹配该应用程序的一组有效的MIME类型。 当试图使用fileinfo()来确定Office 2007文件的MIME类型时,它不会将其检测为适当的MIME类型。 相反,MIME类型的响应是“应用程序/邮编”
Office文档MIME类型: http : //filext.com/faq/office_mime_types.php
PHP代码示例:
$ oFileInfo =新的finfo(FILEINFO_MIME_TYPE);
$ sMimeType = $ oFileInfo - > file($ _FILES ['Filedata'] ['tmp_name']);
echo $ sMimeType;
服务器设置信息:
从web服务器下载时,我发现了许多涉及新版Office格式问题的帖子。 在所有这些示例中,我没有找到任何说明将新MIME类型添加到现有magic.mime文件的庄园,或者指向已包含Microsoft Office 2007+ MIME类型的magic.mime文件的链接。 感谢你的协助。
较新的Office文件实际上是ZIP档案。 这就是为什么MIME Magic数据库将它们检测为ZIP文件的原因。 您可能需要根据文件扩展名添加特殊规则,或者查看ZIP文件以查看它是否具有docProps
文件夹(Office ZIP归档文件具有包含有关文档元数据的文件夹)。
还有其他文件格式,实际上是带有不同扩展名的ZIP存档文件,例如JAR文件。
哈哈,是的,只是更新它,问题解决了。 不幸的是,它看起来像魔幻类型系统的实际文件内容,并且由于文件被压缩,它不能解压缩(并查看哪个文件?)
有人建议编写一个函数来解压缩压缩文件,然后检查是否存在“DocProps”目录。 但是这会给生产服务器引入另一种攻击向量。
您是否尝试将新的MIME类型添加到IIS?
上一篇: PHP 5.3.5 fileinfo() MIME Type for MS Office 2007 files