我想上传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 ) )
答案 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'),
这将像魅力一样工作。