1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Laravel6|画像アップロード

Last updated at Posted at 2021-12-09

シンボリックリンクを貼る

画像はstrageフォルダに入るが、ここはWEBからは通常では参照は不可能。
なので、publicからstarageの中へシンボリックリンクを貼るため以下を実行する。

php artisan storage:link

1.画像ファイルの指定

blade.php
        <form method='POST' action="..." enctype="multipart/form-data"><!--->

        <input name='image' type="file" class="form-control-file" id="image" ><!--->

①enctype="multipart/form-data"必須
②type="file"

2.画像アップロード

2パターンある

1.通常のアップロード
2.Strageファサードを使ったアップロード

1.通常のアップロード

controller.php
        if($request->hasFile('image')){//①
            if($request->file('image')->isValid()){//② 
                $image_path = $request->file('image')->store('public/images/');//③
                $image_path=basename($image_path);//④
            }
        }

①hasFile('image')はファイルがちゃんと送信されたかチェックする。
②isValid()はファイルがアップロードされたかチェックする。
③strageフォルダに「public/images/」を掘ってここに画像を保存する。
④basenameでファイルパスからファイル名だけを取る→DBに保存

2.Strageファサードを使ったアップロード

controller.php

use Illuminate\Support\Facades\Storage;//ファサード


        if($request->hasFile('image')){//①
            if($request->file('image')->isValid()){//② 
                $image_path = Storage::put('/public/images/', $request->file('image'));//③
                $image_path=basename($image_path);//④
            }
        }

ファサード:Storageファサードの宣言

①hasFile('image')はファイルがちゃんと送信されたかチェックする。
②isValid()はファイルがアップロードされたかチェックする。
③strageフォルダに「public/images/」を掘ってここに画像を保存する。
④basenameでファイルパスからファイル名だけを取る→DBに保存

3.表示

blade.php
<img class="rounded mx-auto d-block" style="" src="{{ asset('storage/images/'.$memo['image']) }}">

asset:現在のリクエストのスキーマ(HTTPかHTTPS)を使い、アセットへのURLを生成
publicにstrageへのシンボリックリンクがある。
そこからimagesの中の該当画像を表示する。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?