2016-07-12 48 views
1

我們得到一個錯誤您嘗試上傳的文件類型是不允許的笨版本3.0.4

錯誤:

Error: The filetype you are attempting to upload is not allowed.

array(1) { ["csv"]=> array(5) { ["name"]=> string(18) "cod_sp_payment.csv" ["type"]=> string(24) "application/vnd.ms-excel" ["tmp_name"]=> string(24) "C:\xampp\tmp\php5910.tmp" ["error"]=> int(0) ["size"]=> int(155) } } 

控制器代碼:

$config['upload_path'] = './uploads/excel/'; 
$config['allowed_types'] = 'text/comma-separated-values|application/csv|application/excel|application/vnd.ms-excel|application/vnd.msexcel|text/anytext|text/plain|text/csv|csv'; 
$this->load->library('upload', $config); 

if(! $this->upload->do_upload('csv')) { 

    $error = array('error' => $this->upload->display_errors()); 

    // $this->load->view('upload_form', $error); 

    echo $this->upload->display_errors(); 
} 

$upload_data = $this->upload->data(); 

exit(); 

回答

1

$config['allowed_types'] = 'csv';可能不會總是這樣做。您可能需要以下

text/comma-separated-values|application/csv|application/excel|application/vnd.ms-excel|application/vnd.msexcel|text/anytext|text/plain|text/csv|csv 

添加像一些更多類型在你的答案,你可以找到

[type] => application/vnd.ms-excel 

MIME類型爲ms-excel。所以CSV將無法​​正常工作。我們ca't指定csv文件的mimtype由於這種不同的MIME類型

**注:**。在你的代碼中的另一個錯誤

Message: fopen(test2/uploads/excel/cod_sp_payment.csv): failed to open stream: No such file or directory

請檢查該文件存在與否

+0

@AnuAbraham但很難在代碼中留下評論,你可以通過點擊標籤下方的編輯按鈕來更新你的問題。 – user4419336

+0

@ Arun我們已經按照您的建議更改了我們的代碼。請檢查上面的代碼 –

0

請確認您的config/mimes.php是否包含文件類型。 要知道上傳文件的文件類型,請執行下列操作:

if(! $this->upload->do_upload('csv')) 
{ 
    $error = array('error' => $this->upload->display_errors()); 
    // $this->load->view('upload_form', $error); 
    echo $this->upload->data(); 
    echo $this->upload->display_errors(); 
} 
$upload_data = $this->upload->data(); 
0

這是因爲不同的服務器上區別對待的文件。它可以是相同的文件,但mime類型不會被視爲相同。

解決辦法:

  1. 在笨,打開文件系統/庫/ upload.php的。在199行(在CI ver.3.x中),將行$this->file_size = $_FILES[$field]['size'];更改爲$this->_file_mime_type($_FILES[$field]); var_dump($this->file_type); die();

  2. 將文件上傳到要測試的服務器。運行測試。確定您的文件類型。複製稍後再次使用的文件類型。

  3. 現在刪除上述步驟1中的更改​​並重新上傳文件。

  4. 現在打開文件application/config/mimes.php。轉到第97行。這是具有'xlsx'的mime類型的部分。在此粘貼新的MIME類型。將文件上傳到您的服務器。

完成。現在您的應用程序/上傳應該可以工

我只是發現了類似的答案,這在這裏:CodeIgniter: "The filetype you are attempting to upload is not allowed."

看起來更加細緻。

相關問題