ajaxでcsvファイルをアップロード処理を追加したので備忘録として残しておきます。
JS側
/アップロードするファイルを取得
//一時ファイル作成
var formdata = new FormData($(‘[name=csv_upload]’).get(0));
//データを入れる
formdata.append(‘target’, ‘csv_upload’);
//ajax
$.ajax({
type:”POST”,
url: “/app_management/project/project_list_csv_upload_update_check”,
data:formdata,
dataType:”json”,
processData: false,
contentType: false,
//現状ajax通信が成功したら必ず発生するようになっているため,
// confirm(‘CSVから空への項目はできませんが問題ないですか?’);後に起動するように修正をすること
success:function(res){
$.blockUI({
message: ‘<h1>アップロードされたファイルを確認しています。</h1>’,
css: {
border: ‘none’,
padding: ’15px’,
backgroundColor: ‘#000’,
‘-webkit-border-radius’: ’10px’,
‘-moz-border-radius’: ’10px’,
opacity: .5,
color: ‘#fff’
}
});
setTimeout($.unblockUI, 1000);
if(res.status){
console.log(‘成功’);
var result = confirm(‘CSVから空への項目はできませんが問題ないですか?’);
//確認後問題なければアップロード
if (result) {
$(‘#csv_upload’).submit();
} else {
submit_flag = false;
}
} else {
console.log(‘csvファイル取得に失敗しました。’);
}
},
error:function(){
alert(‘取得に失敗しました。’);
}
});
コントローラ PHP側
public function project_list_csv_upload_update_check(Request $request) {
info(‘project_list_csv_upload_update_check関数内スタート’);
$app_common = New AppCommon();
// 対象カラムを取得
$target_colomn = $this->csv_target_column();
foreach ($target_colomn as $key => $val) {
$column[] = $key;
}
$column = array_keys($target_colomn);
$upfile = $request->file(‘csv_file’);
$set_data = $app_common->csv_upload_read($request->file(‘csv_file’)->path(), $column, ‘test’);
info($set_data);
info(‘project_list_csv_upload_update_check読み取り後’);
return response()->json([‘status’ => true]);
// info($request);
}
画面で使用しているコントローラの読み込みファイルにJSを追加しておく
また、ブロックUIを使用する場合は拡張機能をダウンロードしておく。それを読み込むように記載\View::share(‘js’, [,~~ ‘scripts/jquery.blockUI.js’] );名前は拡張機能をダウンロードした際に決めた名前になる
コメント