【问题标题】:Wrong Mime-type in uploaded file上传文件中的 Mime 类型错误
【发布时间】: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']

标签: php firefox file-upload mime-types


【解决方案1】:

$_FILES[...]['type'] 只是任意的、用户提供的、最佳猜测的、不可靠的(如您所见)客户端提供的信息,可能与实际文件有任何关系,也可能没有任何关系。 永远不要使用它。

尝试自己在服务器上检测 MIME 类型。例如技术,请参阅How to get the content-type of a file in PHP?

【讨论】:

  • 哦,是的,我上传了一个错误命名为 *.jpg 的 PNG 文件,而 $_FILES[...]['type'] 错误地报告了 image/jpeg
猜你喜欢
  • 2012-06-01
  • 2015-01-04
  • 2011-06-09
  • 1970-01-01
  • 1970-01-01
  • 2017-08-09
  • 2015-01-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多