カテゴリ: Laravel 更新日: 2026/04/26

Laravelストレージとは?storageとpublicの違いと使い分けを初心者向けに徹底解説

Laravelのストレージとは?`storage`と`public`の使い分けを解説
Laravelのストレージとは?`storage`と`public`の使い分けを解説

先生と生徒の会話形式で理解しよう

生徒

「Laravelで画像やファイルを保存するときに、storageとかpublicって出てくるんですが、何が違うんですか?」

先生

「Laravelでは、ファイルを保存する仕組みをストレージと呼びます。特にstorageフォルダとpublicフォルダの使い分けがとても大切です。」

生徒

「どっちに保存すればいいのか分からなくて困っています。」

先生

「大丈夫です。Laravelのファイル保存の仕組みと、storageとpublicの違いを初心者でも分かるように説明していきます。」

1. Laravelのストレージとは何か

1. Laravelのストレージとは何か
1. Laravelのストレージとは何か

Laravelのストレージとは、画像ファイルやPDFファイル、テキストファイルなどのデータを保存する仕組みのことです。Webアプリケーションでは、ユーザーがアップロードした画像やダウンロード用の資料などをサーバーに保存する必要があります。

このようなファイル保存の機能をLaravelではストレージ機能と呼びます。Laravelには最初からファイル保存を簡単に扱える仕組みが用意されており、それを利用すると安全で管理しやすいプログラムを書くことができます。

ストレージという言葉は、簡単に言うとデータを保管する場所という意味です。例えばパソコンの中にあるフォルダに写真や文章を保存するのと同じように、Webアプリケーションでもファイルを保管する場所が必要になります。

Laravelでは主に次のような用途でストレージが使われます。

  • ユーザーがアップロードした画像の保存
  • ダウンロード用のPDFファイル保存
  • ログファイルの保存
  • バックアップファイルの保存

これらを安全に管理するためにLaravelではstorageフォルダとpublicフォルダという2つの場所を使い分けます。

2. Laravelのstorageフォルダとは

2. Laravelのstorageフォルダとは
2. Laravelのstorageフォルダとは

Laravelのstorageフォルダは、アプリケーション内部で使うファイルを保存する場所です。一般のユーザーが直接アクセスできない場所にファイルを保存できるため、安全性が高いという特徴があります。

例えば次のようなデータはstorageフォルダに保存することが多いです。

  • ログファイル
  • 一時ファイル
  • 非公開のユーザーデータ

パソコンで例えると、引き出し付きの机の中に大事な書類を入れておくイメージです。外から簡単に取り出せない場所に保存することで、重要な情報を守ることができます。

Laravelではstorageフォルダの中にいくつかのサブフォルダがあります。


storage/
    app/
    framework/
    logs/

この中で特にファイル保存でよく使われるのがappフォルダです。ユーザーのアップロードファイルなどはここに保存されることが多いです。

3. Laravelのpublicフォルダとは

3. Laravelのpublicフォルダとは
3. Laravelのpublicフォルダとは

Laravelのpublicフォルダは、ブラウザから直接アクセスできる公開フォルダです。インターネット上のユーザーがURLでアクセスすると、このpublicフォルダの中にあるファイルが表示されます。

例えば次のようなファイルはpublicフォルダに置かれます。

  • 画像ファイル
  • CSSファイル
  • JavaScriptファイル

例えばpublicフォルダにsample.jpgという画像がある場合、ブラウザから次のようなURLでアクセスできます。


http://example.com/sample.jpg

つまりpublicフォルダは、インターネット上に公開するファイルを置く場所です。パソコンで例えると、店のショーウィンドウに商品を並べるようなイメージです。誰でも見ることができます。

4. storageとpublicの違い

4. storageとpublicの違い
4. storageとpublicの違い

Laravel初心者が最も混乱しやすいのが、storageフォルダとpublicフォルダの違いです。簡単に説明すると次のようになります。

フォルダ 特徴
storage 外部から直接アクセスできない安全な保存場所
public ブラウザから直接アクセスできる公開フォルダ

例えばユーザーのプロフィール画像を表示する場合、ブラウザからアクセスできる必要があります。そのためpublicフォルダに置くか、storageの公開領域を利用する必要があります。

逆に、ユーザーの個人情報を含むファイルなどは外部から見えないstorageフォルダに保存します。

このようにLaravelではファイルの公開レベルによって保存場所を使い分けることが重要です。

5. Laravelでファイルを保存する基本コード

5. Laravelでファイルを保存する基本コード
5. Laravelでファイルを保存する基本コード

LaravelではStorageクラスを使うことで簡単にファイルを保存できます。Storageとは、Laravelに用意されているファイル操作の機能です。

例えばテキストファイルを保存するコードは次のようになります。


use Illuminate\Support\Facades\Storage;

Storage::put('sample.txt', 'Laravelのストレージテスト');

このコードを実行すると、storageフォルダの中にsample.txtというファイルが作成されます。

ファイルの内容を読み込む場合は次のコードを使います。


use Illuminate\Support\Facades\Storage;

$content = Storage::get('sample.txt');

echo $content;

実行結果は次のようになります。


Laravelのストレージテスト

このようにLaravelでは数行のコードで簡単にファイル保存や読み込みができます。

6. storageのファイルをpublicで公開する方法

6. storageのファイルをpublicで公開する方法
6. storageのファイルをpublicで公開する方法

Laravelではstorageフォルダに保存したファイルをpublicフォルダ経由で公開する仕組みがあります。それがstorage:linkというコマンドです。

次のコマンドを実行すると、storageとpublicがリンクされます。


php artisan storage:link

このコマンドを実行すると、publicフォルダの中にstorageというリンクフォルダが作られます。

するとstorage/app/publicに保存されたファイルをブラウザから表示できるようになります。

例えば次のようにファイルを保存します。


use Illuminate\Support\Facades\Storage;

Storage::disk('public')->put('image.txt', '公開ファイルのテスト');

この場合、ブラウザから次のURLでアクセスできます。


http://example.com/storage/image.txt

この仕組みによって、Laravelでは安全にファイルを保存しながら必要なものだけ公開できます。

7. Laravelでstorageとpublicを使い分けるポイント

7. Laravelでstorageとpublicを使い分けるポイント
7. Laravelでstorageとpublicを使い分けるポイント

Laravelでファイル管理をするときは、次のルールで使い分けると分かりやすくなります。

  • 公開する画像やCSSはpublicフォルダ
  • ログファイルはstorageフォルダ
  • ユーザーアップロードはstorageに保存
  • 公開が必要な場合はstorageのpublic領域を使う

初心者のうちはstorageとpublicの違いが分かりにくいですが、公開するファイルかどうかという基準で考えると理解しやすくなります。

Laravelのストレージ機能を理解しておくと、画像アップロード機能やファイルダウンロード機能などを安全に作れるようになります。Webアプリケーション開発では非常に重要な知識なので、Laravel初心者のうちにしっかり理解しておくことが大切です。

まとめ

まとめ
まとめ

Laravelストレージの基本を振り返ろう

ここまでLaravelのストレージ機能について詳しく解説してきました。Laravelでファイル管理を行うときに必ず理解しておきたいのがstorageフォルダとpublicフォルダの役割です。Laravelで画像アップロード機能やファイル保存機能を作る場合、この二つのフォルダの違いを理解していないと正しくファイルを保存したり表示したりすることができません。

Laravelのストレージとは、Webアプリケーションで使用する画像ファイルやテキストファイル、PDFファイルなどをサーバーに保存するための仕組みです。Webサービスではユーザーがアップロードした画像やダウンロード用の資料など、多くのファイルを管理する必要があります。そのためLaravelではStorageクラスという便利な機能が用意されており、初心者でも簡単にファイル操作ができるようになっています。

storageフォルダはLaravelアプリケーション内部で利用するファイルを保存する場所です。このフォルダに保存されたファイルはブラウザから直接アクセスすることができないため、安全にデータを管理することができます。例えばログファイルやバックアップファイル、ユーザー情報を含むデータなどはstorageフォルダに保存するのが基本です。

一方でpublicフォルダはブラウザから直接アクセスできる公開フォルダです。インターネット上のユーザーがURLにアクセスすると、このpublicフォルダの中にあるファイルが表示されます。Webサイトで表示する画像やCSSファイル、JavaScriptファイルなどはこのpublicフォルダに置かれることが多いです。

Laravel開発でよくあるのがユーザーがアップロードした画像をWebページに表示するケースです。このような場合、storageフォルダにファイルを保存しつつブラウザから表示できるようにする必要があります。そのときに利用するのがstorage:linkコマンドです。このコマンドを実行するとstorageフォルダとpublicフォルダがリンクされ、storageに保存されたファイルを安全に公開できるようになります。

Laravelストレージ操作の基本コード

LaravelではStorageクラスを利用するとシンプルなコードでファイル保存やファイル読み込みを行うことができます。例えばLaravelでファイルを保存する基本コードは次のようになります。


use Illuminate\Support\Facades\Storage;

Storage::put('test.txt', 'Laravelストレージの保存テスト');

このコードを実行するとstorageフォルダの中にtest.txtというファイルが作成されます。Laravelではこのように数行のコードで簡単にファイル保存機能を実装できます。

保存したファイルを読み込む場合は次のコードを使用します。


use Illuminate\Support\Facades\Storage;

$text = Storage::get('test.txt');

echo $text;

実行結果は次のようになります。


Laravelストレージの保存テスト

また公開フォルダとして利用する場合はpublicディスクを指定して保存します。


use Illuminate\Support\Facades\Storage;

Storage::disk('public')->put('sample.txt', '公開用ファイルのテスト');

このようにpublicディスクを指定することで、storageの公開領域にファイルを保存することができます。Laravelではこの仕組みを利用することで安全性を保ちながら画像表示やファイル公開を行うことができます。

Laravel初心者が理解しておくべきポイント

Laravelのストレージ機能を学ぶときは次のポイントをしっかり覚えておくと理解しやすくなります。まずstorageフォルダはアプリケーション内部で使う安全な保存場所であり、外部から直接アクセスできないという特徴があります。次にpublicフォルダはインターネットからアクセスできる公開フォルダであり、ブラウザから表示するファイルを配置する場所です。

またLaravelではstorageフォルダにファイルを保存してからpublicフォルダを通して公開するという方法がよく使われます。この方法を使うことでセキュリティを保ちながらユーザーにファイルを表示することができます。Webアプリケーション開発では画像アップロード機能やファイルダウンロード機能を実装する機会が多いため、Laravelストレージの理解はとても重要です。

Laravel初心者の方はまずStorageクラスの基本的な使い方を覚え、ファイル保存や読み込みの流れを理解することから始めるとよいでしょう。storageフォルダとpublicフォルダの役割を正しく理解しておくことで、Laravelでのファイル管理やストレージ操作がスムーズにできるようになります。

先生と生徒の振り返り会話

生徒

「Laravelのストレージについてだいぶ理解できました。storageフォルダはアプリの内部用で、publicフォルダはブラウザから見える公開フォルダなんですね。」

先生

「その通りです。Laravelではファイルの安全性を保つためにstorageフォルダを使って保存し、必要な場合だけpublicフォルダを通して公開する仕組みになっています。」

生徒

「Storageクラスを使うと簡単にファイル保存や読み込みができるのも便利ですね。コードもとてもシンプルでした。」

先生

「はい。Laravelは初心者でもファイル操作が簡単にできるように設計されています。画像アップロード機能やファイル管理機能を作るときには必ず使う知識です。」

生徒

「storageとpublicの使い分けが分かれば、Laravelでのファイル管理も安心して実装できそうです。」

先生

「その理解で大丈夫です。Laravelストレージの基本を覚えておけば、画像アップロード機能やダウンロード機能など多くのWebアプリケーション機能を作ることができるようになります。」

関連記事:
カテゴリの一覧へ
新着記事
New2
Symfony
SymfonyでAPI向けにカスタムエラーメッセージを返す方法を解説!初心者でも安心のバリデーション基礎
New3
Symfony
Symfonyの動的フォームフィールド追加・削除を完全ガイド!初心者でもわかるフォーム操作入門
New4
Laravel
LaravelのMailableクラスの使い方を完全解説!初心者でもできるメール送信管理
人気記事
No.1
Java&Spring記事人気No1
CodeIgniter
CodeIgniterのセッション管理を徹底解説!値を保存・取得する基本操作
No.2
Java&Spring記事人気No2
Laravel
Laravelのnow()・today()関数の使い方完全ガイド!初心者でもわかる日時処理と日付操作
No.3
Java&Spring記事人気No3
Laravel
Laravelのabort()関数でエラーを返す方法!初心者向け完全ガイド
No.4
Java&Spring記事人気No4
Symfony
Symfony Twig入門|条件分岐とループをやさしく理解するテンプレート活用術
No.5
Java&Spring記事人気No5
Laravel
Laravelのインストール方法まとめ!ComposerとLaravel Installerの使い方
No.6
Java&Spring記事人気No6
Laravel
Laravelの日付バリデーションの使い方を完全解説!初心者でも安心の丁寧ガイド
No.7
Java&Spring記事人気No7
Laravel
Laravelの@eachディレクティブで簡単に繰り返しテンプレートを表示する方法
No.8
Java&Spring記事人気No8
Symfony
Symfonyのコントローラで例外処理を追加する方法をやさしく解説!初心者でも安心して学べる