MENU

ajaxでcsvファイルをアップロードする方法

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’] );名前は拡張機能をダウンロードした際に決めた名前になる

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次