docx 的 PHP mimetype 检测

Posted

技术标签:

【中文标题】docx 的 PHP mimetype 检测【英文标题】:PHP mimetype detection for docx 【发布时间】:2012-05-15 18:19:47 【问题描述】:

mime_content_type 和 PECL Fileinfo 扩展都无法检测到 docx 文档的正确 mime 类型。

是否有任何扩展或解决方案可以在 php 中执行此操作而不会创建基于文件扩展名的丑陋 hack?

【问题讨论】:

php.net/manual/en/ref.fileinfo.php 【参考方案1】:

在检测正确的 mime 类型时,我发现 PHP 有点意外。如果您不确定使用核心 PHP 函数获得正确的结果,那么您可以将命令传递给操作系统(如果在 Linux 上);

$output = exec('file --mime-type [filename]');
list($output, $mimeType) = explode(' ', $output);

另一种选择是根据已知的 mime 类型列表检查文件扩展名;例如

http://snipplr.com/view/1937/

但这取决于有一个完整的 mime 类型列表,这并不理想。

【讨论】:

以上是关于docx 的 PHP mimetype 检测的主要内容,如果未能解决你的问题,请参考以下文章

App Engine 无法猜测 PHP 文件的 mimetype

PHP 如果支持,发送适当的mimetype和doctype

php 7.2 finfo 魔术文件

闪光检测脚本

PHP将docx文件转换为pdf

PHP - 使用正确的 MIME 类型打开上传的 DOCX 文件