【问题标题】:xls file is not uploading in codeigniter?xls 文件未在 codeigniter 中上传?
【发布时间】:2012-08-11 12:40:40
【问题描述】:

我要上传csv文件和xls文件,我的代码在下面给出
`

        `$configUpload['upload_path'] = './user_status/';`
         $configUpload['allowed_types'] = 'XLS|text/comma-separated-values|application/csv|application/excel|application/vnd.ms-excel|application/vnd.msexcel|text/anytext|text/plain|text/csv|csv|application/vnd.ms-excel';
         $configUpload['max_size'] = '5000';
         $this->load->library('upload', $configUpload);
         $this->upload->do_upload('input field name')`;

我的 csv 文件上传得很好,但是当我选择 xls 文件时,codeigniter 显示错误“不允许您尝试上传的文件类型”。

print_r($_FILES) 的结果是

Array ( [user_status_csv] => Array ( [name] => VTRACK.XLS [type] => application/vnd.ms-excel [tmp_name] => C:\xampp\tmp\phpB2C4.tmp [error] => 0 [size] => 2627412 ) ) 

【问题讨论】:

  • 您检查了在 allowed_types 值中使用 'xls' 吗? ?
  • 是的,但显示同样的错误。

标签: php codeigniter file-upload csv xls


【解决方案1】:

我遇到了同样的问题。我通过修改 xls 的 mime 解决了

'xls'   =>  array('application/excel', 'application/vnd.ms-excel', 'application/msexcel'),

array('application/excel', 'application/vnd.ms-excel', 'application/octet-stream'),

【讨论】:

    【解决方案2】:

    你也可以试试 XLSX

     $configUpload['allowed_types'] = '**XLSX|**XLS|text/comma-separated-values|application/csv|application/excel|application/vnd.ms-excel|application/vnd.msexcel|text/anytext|text/plain|text/csv|csv|application/vnd.ms-excel';
    

    你也可以像这样给出文件扩展名

     $configUpload['allowed_types'] = 'xls|xlsx|csv';
    

    【讨论】:

    【解决方案3】:

    您可以尝试使用类似主题的解决方案。答案表明浏览器将 xls(x) 作为 application/zip 发送。

    请参考这个话题:Upload xls or xlsx files with codeigniter, mime-type error

    解决办法:

    我已在 mime 类型文件 (application/config/mimes.php) 中添加/替换了以下行:

    'xlsx' => array('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet','application/zip'),
    

    【讨论】:

      【解决方案4】:

      您必须在 mimes.php 配置文件中设置 mime 类型。 您可以使用上传文件 calss 中的 data() 方法确定您的文件 mime 类型

      请检查以下内容:

      http://isaber.info/blog/2013/01/23/codeigniter-upload-files-not-work/

      【讨论】:

        【解决方案5】:

        xls 或 xlsx,csv 问题与 mime 类型有关。

        解决办法是:

        if ( $this->upload->do_upload('filename') ){
               $img = $this->upload->data();
               $ext = $img['file_ext'];                            
               $post['xlfile'] = time().$ext;
        } else {
               var_dump($this->upload->data());
               exit();                            
               redirect('hr/hr/dashboard/');
        }
        

        如果excel文件上传失败,则在else条件下写入

        var_dump($this->upload->data()); 因此,将识别 mime 的类型。按索引名称 file_type 复制输出数组。

        'file_type' => 字符串'application/vnd.ms-office'(长度=25)

        然后打开 application/config/ 文件夹中的 mimes.php。

        搜索 xls、xlsx 并为数组添加以下 mime 类型。

        最多涵盖所有的 mime 类型。

        'xls' =>       array('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/zip', 'application/x-zip', 'application/vnd.ms-excel', 'application/msexcel','application/excel','application/vnd.ms-office'),
        

        这将像魅力一样发挥作用。

        【讨论】:

          猜你喜欢
          • 2017-12-21
          • 2013-02-12
          • 1970-01-01
          • 2015-07-24
          • 2013-08-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-11-17
          相关资源
          最近更新 更多