0

csv ファイルと xls ファイルをアップロードしたいのですが、私のコードは以下のとおりです
`

        `$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ファイルを選択すると、codeigniterは「アップロードしようとしているファイルタイプは許可されていません」というエラーを表示します。

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 ) ) 
4

5 に答える 5

2

私も同じ問題を抱えていました。そして、xlsのmimeを変更して解決しました

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

array('application/excel', 'application/vnd.ms-excel', 'application/octet-stream'),
于 2012-10-12T16:08:25.840 に答える
1

似たトピックの解決策を試すことができます。回答は、ブラウザーが xls(x) を application/zip として送信することを示唆しています。

このトピックを参照してください: codeigniter、mime-type エラーのある xls または xlsx ファイルのアップロード

ソリューション:

次の行を MIME タイプ ファイル (application/config/mimes.php) に追加/置き換えました。

'xlsx' => array('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet','application/zip'),
于 2012-08-15T08:31:26.507 に答える
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';
于 2012-08-15T07:45:42.983 に答える
0

mimes.php 構成ファイルで MIME タイプを設定する必要があります。アップロード ファイルの呼び出しで data() メソッドを使用して、ファイルの MIME タイプを特定できます。

以下を確認してください。

http://isaber.info/blog/2013/01/23/codeigniter-upload-files-not-work/

于 2013-01-23T16:19:19.817 に答える
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ファイルのアップロードに失敗した場合は、else条件に書き込みます

var_dump($this->upload->data()); それで、Mimeのタイプが識別されます。出力配列をインデックス名 file_type でコピーします。

'file_type' => 文字列 'application/vnd.ms-office' (長さ = 25)

次に、application/config/ フォルダーにある 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'),

これは魅力のように機能します。

于 2015-11-03T05:59:27.880 に答える