使用PHP上传时出现MIME错误 - docx文件

时间:2016-01-19 17:13:00

标签: php file-upload

我正在建立的网站允许授权用户上传文件。对于任何特定类别的上载,允许一组文件类型,例如, .pdf和.docx,以便我的客户可以选择他们想要接受的内容。

上传时,我会针对该扩展程序的MIME类型的数据库表检查上传文件的MIME类型(使用finfo_open(FILEINFO_MIME_TYPE))。

在测试中,我正在从我的PC上传一个docx文件 - 它有一个docx扩展名,Windows将文件类型报告为application / vnd.openxmlformats-officedocument.wordprocessingml.document,这正是我所期望的。但是,finfo_open给了我一个MIME类型的application / msword。

finfo_open的信息是来自文件内还是来自浏览器中的内容或上传过程(在这种情况下我想我需要指定允许的其他MIME类型)或者它是否在Web服务器内(在这种情况下) ,可以用php.ini修改吗?

1 个答案:

答案 0 :(得分:0)

我相信在PHP中使用$_FILES签出文件MIME类型会更安全。

尽管如此,我并不认为这令人烦恼。您确定提供了docx而不只是doc文档吗?通常application/msworddoc文件扩展名的mime类型...请确保使用正确版本的Microsoft Word以正确的格式保存文件,然后重试。另外,我尝试在print_r上使用$_FILES来查看它是否告诉您有关该文件的内容?它是否告诉您该文件具有不同的mime类型?