上传文件中的 Mime 类型错误
Posted
技术标签:
【中文标题】上传文件中的 Mime 类型错误【英文标题】:Wrong Mime-type in uploaded file 【发布时间】:2012-02-05 05:28:12 【问题描述】:我的网站上有文件上传表格,我检查上传文件的 mime 类型以允许或拒绝上传。在我将 Firefox 升级到 3.6.11(在 ubuntu 中)之前,它运行良好。但现在无法上传 Doc 文件。我检查了文件的 mime 类型,但它是 'application/x-php' 而不是 'application/vnd.ms-word' 或其他 msword mime-types。
我用
echo $_FILES[$fileName]['type'];
查看 mime 类型。我从 firefox 8 和 firefox 3.6 上传了相同的文件,上面代码的输出是:
FireFox 8: application/vnd.ms-word
FireFox 3.6: application/x-php
是firefox的bug还是我要改代码?
我使用 PHP。
【问题讨论】:
如何检查 MIME 类型? 我写了一个函数,但是为了调试我只是回显 $_FILES[$fileName]['type'] 【参考方案1】:$_FILES[...]['type']
只是任意的、用户提供的、最佳猜测的、不可靠的(如您所见)客户端提供的信息,可能与实际文件有任何关系,也可能没有任何关系。 永远不要使用它。
尝试自己在服务器上检测 MIME 类型。例如技术,请参阅How to get the content-type of a file in PHP?。
【讨论】:
哦,是的,我上传了一个错误命名为 *.jpg 的 PNG 文件,而$_FILES[...]['type']
错误地报告了 image/jpeg
。以上是关于上传文件中的 Mime 类型错误的主要内容,如果未能解决你的问题,请参考以下文章