laravelで画像アップロード機能の掲示板を制作しています。
サイズの違う画像を投稿すると記事ごとに大きさが違うので、
Image Interventionのパッケージを使ってリサイズしようとしていますが、
「パスに画像データを書き込めません」というエラーが出てきて困っていいます。
・画像ファイルは、シンボリックリンクを張りファイルストレージに保存(public/storage/post_image)
・ファイル名は、Postテーブルのpathカラムに保存
public function store(PostRequest $request) { $post = new Post; $post->title = $request->title; $post->body = $request->body; //ファイルが存在しているか if($request->hasFile('path')){ $file = $request->file('path');//ファイルを取得 $filename = $file->getClientOriginalName();//ファイル名取得 Image::make($file)//ファイルを渡す ->resize(300, 300) ->save(public_path( 'public/post_image/' . $filename )); $post->path = basename($filename); } $post->save();
調べたのですがうまくいかずにいます
どうすればパスに画像データを書き込めて、リサイズできるのでしょうか?
わかる方いらっしゃいましたら教えてください。
地道にデバッグするしかないですが、そもそもアップロード自体はできているのでしょうか。
アップロードはできていませんでしたが、
保存先をpublicからstorageに変更することでアップロードできるようになりました。
->save(public_path( 'storage/post_image/' . $filename ));
store('public/post_image');の保存と同じにしていて、
保存と読み込みの違いを理解していませんでした。
保存がstorage/app/public
読込がpublic/storage
では、解決ということですかね。
https://teratail.com/help
回答1件
あなたの回答
tips
プレビュー