在 PHP 上传中,我尝试验证正在上传的文件的 MIME 类型,以匹配应用程序的一组有效的 MIME 类型。当尝试使用 fileinfo() 确定 Office 2007 文件的 MIME 类型时,它没有检测到相应的 MIME 类型。相反,MIME 类型响应是“application/zip”
Office 文档 MIME 类型:
http://filex.com/faq/office_mime_types.php
PHP 代码示例:
$oFileInfo = 新的 finfo( FILEINFO_MIME_TYPE );
$sMimeType = $oFileInfo -> file( $_FILES['Filedata']['tmp_name'] );
回声 $sMimeType;
服务器设置信息:
- 操作系统:Windows Server 2003 32位
- 网络服务器:IIS 6.0
- PHP:5.3.5(线程安全)使用 FastCGI 1.5
- File: magic.mime
- Example by darko at uvcms dot com 16-Apr-2008 09:35
- 链接:php.net/manual/en/fileinfo.installation.php
- 大小:517 KB
- 来源:Source Forge:GNU32 - FileType gnuwin32.sourceforge.net/packages/filetype.htm
我发现许多帖子都提到从网络服务器下载较新的 Office 格式时出现的问题。在所有这些示例中,我没有找到任何地方说明如何将新的 MIME 类型添加到现有的 magic.mime 文件,或者指向已包含 Microsoft Office 2007+ MIME 类型的 magic.mime 文件的链接。感谢你的协助。
较新的 Office 文件实际上是 ZIP 存档。这就是 MIME Magic 数据库将它们检测为 ZIP 文件的原因。您可能需要根据文件扩展名添加特殊规则,或者查看 ZIP 文件以查看它是否具有docProps
文件夹(Office ZIP 存档有这样一个文件夹,其中包含有关文档的元数据)。
还有其他文件格式实际上是具有不同扩展名的 ZIP 存档,例如JAR 文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)