前提・実現したいこと
PhP laravelにて画像を投稿できる機能を実装しているのですが、
そのフォームに対して添付写真のエラーが出てしまいます。
発生している問題・エラーメッセージ
画像投稿時にエラーが発生。
該当のソースコード
php
1 public function upload(LostRequest $request) { 2 3 $lost = new Lost; 4 $lost->user_id = $request->user()->id; 5 $lost->pref = $request->pref; 6 $lost->seed = $request->seed; 7 $lost->image = $request->image->getClientOriginalName(); // アップロードされたファイル名のままテーブルに保存 8 $lost->body = $request->body; 9 $lost->save(); 10 11 $this->validate($request, [ 12 'image' => [ 13 // アップロードされたファイルであること 14 'file', 15 // 画像ファイルであること 16 'image', 17 // MIMEタイプを指定 18 'mimes:jpeg,png', 19 ] 20 ]); 21 22 if (empty($request->image) == false) { 23 if ($request->file('image')->isValid([])) { 24 $file_name = $request->file('image')->getClientOriginalName(); // アップロードされたファイル名の取得 25 $path = $request->image->storeAs('public',$file_name); 26 return view('home')->with('filename', basename($path)); 27 } else { 28 return redirect() 29 ->back() 30 ->withInput() 31 ->withErrors(); 32 } 33 } 34 return view('home'); 35 }
LostRequest
1 <?php 2 3namespace App\Http\Requests; 4 5use Illuminate\Foundation\Http\FormRequest; 6 7class LostRequest extends FormRequest 8{ 9 /** 10 * Determine if the user is authorized to make this request. 11 * 12 * @return bool 13 */ 14 public function authorize() 15 { 16 return true; 17 } 18 19 /** 20 * Get the validation rules that apply to the request. 21 * 22 * @return array 23 */ 24 public function rules() 25 { 26 return [ 27 'seed' => 'required', 28 'pref' => 'required', 29 'image' => 'nullable'|'image', 30 'body' => 'required_without:image', 31 ]; 32 } 33}
試したこと
getClientOriginalName()on nulがエラーの原因のため、
一度削除してみたがその場合、テーブルにランダムな文字列で画像が保存されてしまうようになった。
getClientOriginalNameがnullでも通る方法を検索したが、解決できず。
回答1件
あなたの回答
tips
プレビュー