追記
PHP 7.4.7
Laravel Framework 7.19.1
主な参考記事
https://readouble.com/laravel/5.4/ja/requests.html
https://teratail.com/questions/241217
保存すると
/private/var/folders/5n/9vq51_1n5_v0sj1clbf2l5rr0000gn/T/phpPnuPTq
という名前で保存されてしまうのを防ぎたい。
ちゃんと元々の画像名前で保存したいです!
controlloer public function store(Request $request) { $user = auth()->user(); $data = $request->all(); $validator = Validator::make($data,[ 'title' => ['string', 'max:30'], 'image' => ['file', 'image', 'mimes:jpeg,png,jpg', 'max:20480'] ]); $validator->validate(); $book = new Book; $book->homeStore($user->id, $data); $file_name = $request->file('image')->getClientOriginalName(); $request->file('image')->storeAs('',$file_name); $book->save(); // dd($book); return redirect('/home')->with('success', '投稿が完了しました。'); }
models public function homeStore(Int $user_id, Array $data) { $this->user_id = $user_id; $this->image = $data['image']; $this->title = $data['title']; $this->save(); return; }
controllerにstoreAsを使うことはわかったのですが、うまくいかないので質問させていただきました!
publicフォルダには画像名がしっかり保存されています。
ですが、dbからファイルを呼び出しアップロードするためには文字化けしているとうまくいかないのでなんとか名前で保存できるようにしたいです。
よろしくお願いします!
あなたの回答
tips
プレビュー