2016-06-23 18 views
0

Laravelアプリで画像ストレージをどのように整理する必要があると思いますか?たとえば、私は自己ビルド管理パネルと記事モジュールを持っています。すべての記事に、管理パネルの記事の編集ページからアップロードする必要がある画像があります。したがって、この画像は、例えば、/images/somehash.jpgを通してアクセス可能でなければなりません。しかし、セキュリティ上の理由から、パブリックフォルダに書き込むためのアプリ権限を与えることはできません。この問題を解決するにはどのような方法がありますか?Laravel:アプリの公開フォルダに画像を保存する

  1. プライベートフォルダを作成します。 {app_root}/storage/images、URL/images/*を処理するルートを作成し、ストレージからイメージを読み込んで返します。
  2. おそらく、.htaccessでのいくつかの回避策。
  3. あなたはあなたの亜種ですか?

ありがとう!

+0

なぜパブリックフォルダに書き込みをしないのですか?正確なセキュリティ上の理由は何ですか? –

+0

私は、UNIXシステムで書き込み可能なパブリックフォルダを作成すれば誰でもそこに書き込むことができます(PHPをApacheモジュールとして使用する場合)。これは潜在的なセキュリティホールになります –

答えて

0

publicディレクトリにイメージを保存しない場合は、storage/app/imagesディレクトリを作成し、イメージを保存します。

アプリケーションの要件によっては、これらのイメージを読み込むためのルートを作成する必要はありません。

0

イメージをパブリックフォルダまたはプライベートフォルダに保存するかどうかは、ロジックによって異なります。パブリックフォルダにファイルをアップロードすると、 Laravelアプリケーションを起動しなくても、それらのファイルをWebサーバーから直接ダウンロードできます。しかし、あなたがプライベートフォルダにファイルを保存することを選択した場合、それらのファイルはプライベートであり、リクエスタはそれらのファイルをLaravelアプリケーションから取得する必要があります。だから、あなたのファイルが(CSSやJSファイルのように)誰にでも公開されているなら、それはそれらをパブリックフォルダに入れることができるということを意味します。しかし、何らかの理由でファイルに何らかの制限や検証が必要な場合は、そのファイルにユーザーがアクセスできるようにしてから、それらのファイルをプライベートフォルダにアップロードすることができます。

関連する問題