【问题标题】:PHP Upload PDF mime type is application/unknownPHP Upload PDF mime 类型是应用程序/未知
【发布时间】:2011-02-24 20:37:25
【问题描述】:

我在将 PDF 上传到网站时遇到了这个问题。

我在一台计算机上试用它,OS X,mime/type 是 application/unknown。但是当我尝试从另一台 Mac 上传 PDF 时,在通过电子邮件发送后,mime/type 是 application/pdf。

什么可能导致这个问题?

上传是通过 PHP 完成的,所以我通过 $_FILE['name']['type'] 获取 mime/type

【问题讨论】:

  • 什么是“它”?你的测试设置是什么?您如何上传 PDF?
  • 常规表单上传,enctype="multipart/form-data"

标签: php pdf pdf-generation


【解决方案1】:

形式上的回答,因为您的问题在没有任何代码的情况下过于模糊:文件上传的 MIME 类型是不确定的。浏览器只需在多部分<form> 中附加文件,并根据最佳猜测添加 MIME 类型。 PHP 在$_FILES["upload"]["type"] 中看到的不一定正确,甚至可能是故意错误的。

最好忽略此字段,而是使用mime_content_type($_FILES["upload"]["tmp_name"]) 或类似方法来确定正确的内容类型。

【讨论】:

  • mime_content_type 是否也能解决有时在 Windows 中图像是 image/pjpeg 而不是标准图像/jpeg 的问题?
  • 还说 mime_content_type 已被弃用并被 Fileinfo 取代
  • @Devin: Fileinfo 不是很标准,因为它很少使用。我不确定是否正在使用 Windows 设置,因为它们依赖于 mime-magic 数据库。不能对 /pjpeg 问题说什么,但如果它是渐进式 Jpeg 文件,则该文件应该获得相应的 mime 类型。
  • 顺便说一句,如果mime_content_type 不可用(或真的被弃用),那么您仍然可以使用来自upgradephp.berlios.depear.php.net/PHP_Compat 的版本
猜你喜欢
  • 2013-01-05
  • 1970-01-01
  • 2013-07-17
  • 2015-01-06
  • 2014-01-06
  • 2019-08-13
  • 2011-04-12
  • 2011-09-13
相关资源
最近更新 更多