質問: ### 前提・実現したいこと phpにてファイル(pdf、ppt、xlsx、docx)をアップロードできる サイトを構築しています。 ファイルアップロードボタンを押すと、 ローカルのファイルを選択でき、 プレビューを表示、 アップロードボタンでサイトにアップロードできる (アップロードしたファイルが一覧で閲覧でき、ダウンロードもできる) 仕様です。 ### 発生している問題・エラーメッセージ アップロードの方法(詳しいソース)はともかく、 ファイルの格納先をどこにするか (ファイルのままサーバーに格納するのか、データベースに格納するのか) 判断できず困っています。 下記2点の基準で方法を比較したいですが、 他にも判断基準として有力なものがあればご教示頂きたいです。 ・処理(アップロード、ダウンロード、プレビュー表示)の速さ ・負荷の大きさ(アップロード中、ダウンロード中に他のユーザーの操作が圧迫されないか) ### 試したこと データベースに格納するとなると、 SQL処理になるので、単に置いてあるファイルよりも、オーバーヘッドが大きい、 ということまでは調べてわかりましたが、 これ以外の情報は掴めていません。
回答: DBには絶対に入れてはいけない。 極一部でセキュリティ上の理由でDBに入れることもあるけど。 Laravelの場合はStorageでlocalなら`storage/`以下に保存される。 ファイルアップロードのやり方までちゃんとドキュメントに書かれてるからLaravelの普通の使い方をすればいいだけ。 https://readouble.com/laravel/5.5/ja/filesystem.html local以外ではAWSのS3。 開発時はlocal、本番はS3とenvで切り替える。