【问题标题】:How do I upload .docx using Codeigniter? (PHP)如何使用 Codeigniter 上传 .docx? (PHP)
【发布时间】:2013-08-16 13:09:38
【问题描述】:

我正在尝试使用 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')  

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

【问题讨论】:

    标签: php codeigniter file-upload


    【解决方案1】:

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

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

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

    【讨论】:

    • 这帮助我回答了这个问题。出于某种原因,它被视为“应用程序/x-zip”。我将它添加到 docx 的 mime 类型中,它起作用了。
    • 几周前我遇到了类似的问题。很高兴,我的决定对你有帮助。
    • 感谢您的解决方案,就我而言,它显示的是我在 mimes 中添加的 inode/x-empty 并且它有效。
    • 对我来说,mime 类型“application/zip”已经存在,但 .docx 的上传不起作用。添加“应用程序/msword”使其工作。看来,一个人必须尝试一下。是的,按照您的建议检查 file_type 非常有帮助并解决了问题。不确定是否会因为服务器设置而出现差异
    • 对于 Codeigniter 3.1.8,它将在第 462 行
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2019-01-22
      • 2019-03-01
      • 1970-01-01
      • 2017-05-24
      • 1970-01-01
      • 1970-01-01
      • 2016-07-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多