2016-07-12 10 views
1

我々はエラーアップロードしようとしているファイルの種類は、3.0.4

取得中にエラーが発生しているのver CodeIgniterのを許可されていません。

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

には常にそのトリックをしないかもしれません。あなたは

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

MIMEタイプがms-excelで見つけることができ、あなたの答えでは

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

下回るようないくつかのより多くの種類を追加する必要があります。したがってCSVは機能しません。そして、私たちが注意**により、この異なるMIMEタイプ

csvファイルのmimtypeを指定ca't:**別のエラーがあなたのコードであり

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タイプは同じではありません。

ソリューション:CodeIgniterのオン

  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."

をそれは、より詳細なようです。

関連する問題