PHP Laravel 6 画像のアップロード
前提条件
画像ファイルの保存先 = storage/app/public
データベースにはファイル名
のみを保存。
ファイル名にはランダムな名前
が自動で割り当てられる。
フォームの作成
フォームタグの記述
formタグに enctype='multipart/form-data'
を記述しないとエラーを吐きます。
これを記述することで複数類(jpeg、png等)のデータ形式を扱う事でできるようになります。
<form method="POST" action="{{ route('recommends.store') }}" enctype='multipart/form-data'>
@csrf
</form>
コントローラーの設定
imgがない場合に$path = $request->file('img')->store('public/img');
でエラーを吐くためif文で分岐させました。
public function store(Request $request)
{
if ($request->img === null) {
RecommendMovie::create([
'name' => $request->name,
'description' => $request->description,
'impression' => $request->impression,
]);
}else {
$path = $request->file('img')->store('public/img');
RecommendMovie::create([
'name' => $request->name,
'description' => $request->description,
'impression' => $request->impression,
'img' => basename($path)
]);
}
return redirect('/recommends')->with('message', '作成しました');
}
viewの設定
シンボリックリンクを使用します。
php artisan storage:link
storage\imgが作成され、この中にアップロードした画像が保存されます。
以下の記述でブラウザに表示させることができます。
<img src="{{ asset('/storage/img/'.$recommend->img) }}">
Author And Source
この問題について(PHP Laravel 6 画像のアップロード), 我々は、より多くの情報をここで見つけました https://qiita.com/RealXiaoLin/items/ee72600163453679a1cd著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .