0

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

5 回答 5

2

我有同样的问题。我通过修改 xls 的 mime 来解决

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

array('application/excel', 'application/vnd.ms-excel', 'application/octet-stream'),
于 2012-10-12T16:08:25.840 回答
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';
于 2012-08-15T07:45:42.983 回答
1

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

请参考此主题:使用 codeigniter、mime-type 错误上传 xls 或 xlsx 文件

解决方案:

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

'xlsx' => array('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet','application/zip'),
于 2012-08-15T08:31:26.507 回答
0

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

请检查以下内容:

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

于 2013-01-23T16:19:19.817 回答
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($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'),

这将像魅力一样起作用。

于 2015-11-03T05:59:27.880 回答