这已经出现过了,我已经关注了this answer,但并不高兴。
我正在尝试将.docx文件上传到我的CI应用程序,但这给了我
不允许您尝试上传的文件类型。
现在,当我通过将system / libraries / upload.php的199行更改为vard来接收文件的模仿类型时
$this->_file_mime_type($_FILES[$field]); die(var_dump($this->file_type));
我明白了
application / vnd.openxmlformats-officedocument.wordprocessingml.document; charset = binary
...并且在我的application / config / mimes.php文件中列为docx可接受的mime。
是这种情况,还有什么不对吗?
答案 0 :(得分:1)
事实证明,在CI流程的某个地方,哑剧从中变形了
application / vnd.openxmlformats-officedocument.wordprocessingml.document
到
application / msword
我不知道在哪一点或为什么发生这种情况。当我在CI控制器方法中运行以下命令时,就会得到前者。
$finfo = finfo_open(FILEINFO_MIME);
$mime = finfo_file($finfo, 'path/to/file.docx');
var_dump($mime);
所以我不知道它在此过程中如何变成后者。
不用说,将'application / msword'添加到上传选项的allowed_types
区域(传递给$this->upload->initialize($options)
)可以解决问题。
答案 1 :(得分:0)
最近我遇到了同样的问题,整天都无法解决,但是没有成功。 我建议您不要浪费时间,只允许所有文件,然后执行php函数来检查文件是否为.docx