2014-05-07 134 views
0
$this->load->library('upload'); 

    $file_config = array(
     'upload_path' => $dir, 
     'allowed_types' => 'csv', 
     'file_name' => strtoupper($this->input->post('class_name')) . '.csv', 
     'overwrite' => TRUE, 
     'max_size' => 2048, 
     'max_filename' => 128, 
     'remove_spaces' => FALSE 
    ); 
    $this->upload->initialize($file_config); 
    // DEBUG 
    if (!$this->upload->do_upload('file')) 
     echo $this->upload->display_errors(); 
    else 
     echo 'UPLOADED.'; 

由於某種原因,如果我把'allowed_types' => '*',,它接受它,它工作得很好。但如果我不是隻想CSV文件:'allowed_types' => 'csv',當我上傳CSV文件,它輸出一個錯誤:The filetype you are attempting to upload is not allowed.Codeigniter的文件上傳「allowed_types」選項無法正常工作

我怎麼能解決這個問題,而不讓所有類型的文件上傳*,而是隻讓csv上傳文件?

回答

0

Codeigniter文檔說要使用文件的MIME類型,CSV的MIME類型是「text/csv」,所以使用它而不是「csv」。 http://ellislab.com/codeigniter/user-guide/libraries/file_uploading.html

+0

仍然給'你嘗試上傳不allowed.' –

+1

試試這個文件類型,有很多不同類型的CSV MIME類型的和都是有效的,所以你必須包括他們所有。 http://stackoverflow.com/a/12338258/1231563 – stuyam

+0

好吧,我編輯mimes.php文件中的行。最後爲'allowed_types'做了'csv',並且它最終成功了。謝謝! –