【问题标题】:.docx file returning wrong file type.docx 文件返回错误的文件类型
【发布时间】:2012-01-15 10:34:11
【问题描述】:

当我回显 docx 文件的文件类型时,它似乎被切断了。有谁知道我可能错在哪里?

$strInputFile = "test.docx;

回显 $file_type = $_FILES[$strInputFile]["type"]; // 给出 application/vnd.openxmlformats-officedocument.word

谢谢

【问题讨论】:

  • 这对我来说看起来是正确的格式......
  • 对于任何好奇它应该是什么的人(比如我自己),它是application/vnd.openxmlformats-officedocument.wordprocessingml.document
  • 由于某种原因,它被截断为 50 个字符。奇怪...
  • 它甚至没有从数据库中被拉出来被切断.. :(

标签: php file file-upload mime-types


【解决方案1】:

这不是 PHP 的错 - 而是用于上传文件的客户端。检查manual 表明 ['type'] 值是由客户端设置的。

另一种方法是在 PHP 5.3 或更高版本中通过 mime_content_type()finfo_file() - 它们使用服务器上的“魔术”文件来确定文件的 MIME 类型。

请注意,即使这样也不是绝对可靠的,因为函数会在文件中搜索指纹以确定 MIME 类型(例如,我经常将 CSS 文件检测为 C#,因为我在顶部有 /* 注释文件)。

【讨论】:

  • $_FILES['userfile']['type'] 来自哪里?对不起,我不是文件上传专家。它工作正常。一个晴朗的早晨,它停止工作了。
  • 它将来自您将文件上传到服务器的浏览器。
【解决方案2】:

要比较的文件类型正在保存到数据库中,并且正在从那里删除。增加了 db 中的字段值大小,现在可以正常工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-06
    • 1970-01-01
    • 2019-04-17
    • 1970-01-01
    • 1970-01-01
    • 2013-01-15
    • 2011-10-26
    • 1970-01-01
    相关资源
    最近更新 更多