【发布时间】:2011-09-29 12:37:21
【问题描述】:
您好,我正在尝试通过 finfo_file 函数验证上传的文件类型。
但是当发送一个.docx文件时,文件类型是:
application/zip
代替:
application/vnd.openxmlformats-officedocument.wordprocessingml.document
我怎样才能改变这种行为?
【问题讨论】:
-
实际上,新的 \w{3}x 格式是压缩的 XML。您可以将结尾更改为 .zip 并提取它们。我知道这无济于事,但很高兴知道:D
-
提取文件进行测试真的不是解决办法
-
文件的类型是
zip。如果您想知道内容的类型/格式,则无法in查看它。 -
我同意这是可以接受的,但仅限于小型应用程序,我暂时使用检查文件是否是来自 finfo_file 的“应用程序/zip”和来自 $_FILES[“file”的“应用程序/vnd.openxmlformat ...” ][“类型”]
-
对于它的价值,我有相同的代码返回
application/vnd.openxmlformats-officedocument.wordprocessingml.document和application/zip用于不同服务器上的相同文件 - 分别是 Debian 和 Centos。这使得 Laravel 对 docx 的验证在后者上失败而在前者上工作正常。所以要小心,在您部署代码的环境中进行测试。
标签: php validation docx file-type