xls文件没有在codeigniter中上传?

时间:2012-08-15 07:32:13

标签: php codeigniter file-upload csv xls

我想上传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 ) ) 

5 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

您也可以尝试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';

答案 2 :(得分:1)

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

请参阅此主题:Upload xls or xlsx files with codeigniter, mime-type error

<强> Sollution:

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

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

答案 3 :(得分:0)

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

请检查以下内容:

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

答案 4 :(得分:0)

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($这 - &GT; upload-&GT;数据());   因此,将识别哑剧的类型。按索引名称file_type复制输出数组。

     

&#39; FILE_TYPE&#39; =&GT;字符串&#39; application / vnd.ms-office&#39; (长度= 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'),

这将像魅力一样工作。