Q&A
前提
fetchAPIで送信した画像ファイルをコントローラーのアクションで処理したいのですが、$request->file()で取得できません。
非同期でjsから送信されてきた画像ファイルを取得したいです。
該当のソースコード
javascript
1 $('#profileModal .save').click(() => { 2 let fd = new FormData(); 3 fd.append('icon', $('#profileModal #icon').prop('files')[0]); 4 5 fetch('/users/update', { 6 method: 'PATCH', 7 body: new URLSearchParams({ 8 icon: fd, 9 }), 10 headers: { 11 'X-CSRF-TOKEN': '{{ csrf_token() }}' 12 }, 13 }).then(res => { 14 return res.json(); 15 }).then(data => { 16 console.log(data); 17 }).catch(err => { 18 }); 19 });
php
1 public function update(Request $request) 2 { 3ここで取得したいができない 4 return response()->json(['icon' => $request->file('icon')]); 5}
web.php
1Route::patch('/users/update', [UserController::class, 'update']);
試したこと
下記の記事を参考にfetchAPI処理を記述したが、うまく取得できず
Laravelのファイルアップロード処理をFetchAPIで書き直した
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
PHP 8.1.1
Laravel 8.79.0
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2022/05/16 09:08
2022/05/17 02:47
2022/05/17 22:02
2022/05/18 00:25
2022/05/19 05:04
2022/05/19 05:07