【プログラミングスクールの無料体験はこちら】

【Laravel】画像を保存して表示する方法

Laravel

Laravelで画像を表示する方法はいくつか(外部ストレージを使う等)ありますが、本記事では、Laravelの”storage/app/public”ディレクトリに画像を保存して、表示する方法を紹介します。

前提知識

Laravelには”public”というフォルダが2つあり、”/public”と”storage/app/public”です。

  • “/public”は、開発者側が用意した画像(ロゴなど)を保存する場所
  • “storage/app/public”は、ユーザー側がアップロードした画像を保存する場所

Laravelで画像を保存/表示する手順

画像を保存する

まず、bladeファイルでフォームを作ります。

{!! Form::file('document', ['class' => 'form-control']) !!}

次に、コントローラーを編集します。

public function store(Request $request)
{
    $document = $request->document;
    // 画像を"storage/app/public"に保存
    $document->store('public');
}

これで画像を”storage/app/public”に保存できました。

画像を表示する

はじめに、知っておくべきポイントがあります。

  • 画像の保存は、“storage/app/public”
  • 画像の表示は、“public/storage”

つまり、画像を表示させるには、”public/storage”から”storage/app/public”にアクセスできるようにする必要があります。

これをシンボリックリンクと言います。

シンボリックリンクを張るには、下記のコマンド打てば良いです。

php artisan storage:link

下記のように表示されたら成功しています。

The [public/storage] directory has been linked.

“public”に移動して、確認することもできます。

[XXXX@XXXX public]$ ls -la
合計 XX

// 中略

lrwxrwxrwx  1 XXXX XXXXX   95  4月 15 11:51 storage -> /home/test/storage/app/public

// 中略

上記のように表示されていたら、成功しています。

あとは、“{ドメイン名}/storage/{画像ファイル名}”にアクセスすれば画像が表示されます。

まとめ

Laravel開発で画像を保存して表示することはよくあるので覚えておきましょう。

以上、『Laravel】画像を保存して表示する方法』でした。

Laravel学習者におすすめのプログラミングスクール

テックアカデミーのPHP/Laravelコース
いのうえ
いのうえ

実際に私もテックアカデミーのPHP/Laravelコースを受講しました!

タイトルとURLをコピーしました