6

我正在尝试使用 Codeigniter 中的上传帮助程序上传 .docx。

public function upload($id,$type){
        $folder = $type;
        $config['upload_path'] = RESOURCE_PATH . $folder;
        $config['allowed_types'] = 'pdf|doc|docx';
        $config['max_size'] = '100000';
        $this->CI->load->library('upload',$config);
        //$this->load->library('upload', $config);
        if (!$this->CI->upload->do_upload('userfile')){
            echo $this->CI->upload->display_errors();
        }
 ....

上传功能在我的本地主机上运行良好。但是,当我尝试在服务器上上传 .docx 文件时,我得到“不允许您尝试上传的文件类型”。

我可以在服务器上上传其他文件,并且代码是我在本地拥有的完全相同的副本。我还搜索了一下,发现有些人将 .docx 的 mime 更改为:

'docx'  =>  array('application/msword','application/vnd.openxmlformats-officedocument.wordprocessingml.document','application/octet-stream')  

但这似乎并没有解决问题。可能出了什么问题,我该如何解决这个问题,以便我可以解决这个问题?

4

2 回答 2

14

尝试添加这个 mime 类型:application/zipapplication/config/mimes.phpfor docx。这个对我有用。如果没有帮助。打开system/libraries/Upload.php(第 205 行)并执行以下操作:

var_dump($this->file_type);
exit();

您将看到 .docx 的文件类型,并且需要将其添加到配置中的 docx mimes 列表中。

于 2013-08-14T15:03:02.977 回答
0

打开application/config/mimes.php文件并使用以下 mime 类型更改 doc 和 docx 的 mime types 数组。

'doc'  => array('application/msword', 'application/octet-stream'),
'docx' => array('application/msword', 'application/octet-stream','application/vnd.openxmlformats-officedocument.wordprocessingml.document'),

只需将 doc 和 docx 元素值替换为上述 mime 类型数组即可。

于 2018-10-22T08:46:56.503 回答