2012-08-15 89 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'), 

這會像魅力一樣工作。