使用PHP上传时出现MIME错误

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

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

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

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


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

不过,我认为这并不令人困扰。 你确定你给了docx而不仅仅是一个doc文档吗? 通常, application/msworddoc文件扩展名的MIME类型...确保使用正确版本的Microsoft Word以正确的格式保存文件,然后重试。 此外,我会尝试使用$_FILES上的print_r来查看它是否告诉你有关该文件的内容? 它是否告诉你该文件具有不同的MIME类型?

链接地址: http://www.djcxy.com/p/45531.html

上一篇: MIME error when uploading with PHP

下一篇: Laravel validator mimes rule not working for documents