CSVファイルを取り込む
フォームからCSVファイルを取り込んで、読み込んだCSVデータをDB登録する。
・参照ボタンをクリックして取込みファイルを選択後、取込みボタンをクリックでDB登録という処理。
実装サンプルはこんな感じ。
当たり前ですがjQueryのライブラリは読み込んでおく。
importCsv.html
<form id='csv' class="form-horizontal">
<div class="form-group">
<label class="col-md-2 control-label" for="file_input">取込ファイル</label>
<div class="col-md-6">
<input id="fake_input_file" onclick="$('#file_input').click();"
readonly="readonly" type="text" value="" class="form-control input-sm"
maxlength="12" >
<input id="file_input" onchange="$('#fake_input_file').val(files[0].name)"
style="display: none;" class="form-control input-sm" type="file">
</div>
<div class="col-md-2">
<input onclick="$('#file_input').click();"
class="btn btn-default btn-sm btn-block open" type="button"
value="参 照">
</div>
</div>
<div class="form-group">
<div class="col-md-2 col-md-push-8">
<input type="button" class="btn btn-primary btn-sm btn-block import_csv"
value="取 込" id="import_csv">
</div>
</div>
</form>
PHP側では以下のように処理する。
importCsv.php
//取り込んだファイルを受け取る
$file = file($_FILES['file']['tmp_name']);
//ファイルをエンコード
mb_convert_variables("UTF-8", "SJIS", $file);
//ここから先はそれぞれの仕様、設計、要件に合わせた形で実装してくださいm(_ _)m
//1行づつ取り出し、登録
foreach ($file as $line) {
//csvの1行を配列に変換する
$line_list = explode(',',$line);
//DBに登録
.....
.....
}
やり方が分かればお作法的に出来ますね。
※開発環境や文字コードが異なる場合はそれぞれの環境に合わせて対応してください。