2012-08-15 115 views
0

我要上传CSV文件和XLS文件,我的代码已经给下面
`xls文件未在codeigniter中上传?

 `$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文件,然后笨显示错误“的文件类型,你正试图不允许上传“。

结果的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

您是否在allowed_types值中使用'xls'进行检查? ? – kushalbhaktajoshi 2012-08-15 07:43:19

+0

是的,但同样的错误显示。 – shihabudheen 2012-08-15 07:45:41

+0

是什么版本的CI? – TigerTiger 2012-08-15 07:56:01

回答

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'; 
+0

这两种情况都显示同样的问题:( – shihabudheen 2012-08-15 07:52:56

+0

@shihabudheen请尝试检查您的MIME类型。请参阅http://itlivewire.com/devblog/2010/04/13/codeigniter-upload-在-文件类型 - 你 - 是 - 试图对上载的,不被允许/ – Gurria 2012-08-15 09:11:58

1

你可以尝试使用类似主题的溶剂。答案建议浏览器将xls(x)作为应用程序/ zip发送。

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

Sollution:

我已经添加/替换下面一行到MIME类型文件(应用程序/配置/ mimes.php):

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

我有同样的问题。我解决了通过修改MIME为XLS

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

array('application/excel', 'application/vnd.ms-excel', 'application/octet-stream'), 
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文件上传失败,那么在其他条件写

的var_dump($这个 - > upload->数据()); 因此,MIME类型将被识别。通过索引名称file_type复制输出数组。

'FILE_TYPE'=>字符串 '应用程序/ vnd.ms办公室'(长度= 25)

然后打开在应用/配置/文件夹中的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'), 

这会像魅力一样工作。