====== 【Laravel】DBにファイルの中身を保存&保存したデータをテキストファイルとしてダウンロード ====== ===== 1.DBにファイルの中身を保存 ===== file_get_contents でファイルの内容を取得して、DBに保存するだけ。 $mail_template = new MailTemplate(); $mail_template->template = file_get_contents($request->file('template')); $mail_template->save(); ===== 2.DBに保存したデータをテキストファイルとしてダウンロード ===== 日本語のファイル名を付けてダウンロードしたいときに、そのまま filename に日本語を指定すると、サーバー設定などによっては文字化けしてしまうが、RFC 6266 に準拠した書き方にすることで対処可能になる。 public function download(MailTemplate $mail_template) { $filename = '日本語ファイル名.txt'; $headers = [ 'Content-Type' => 'text/plain', 'Content-Disposition' => 'attachment; filename*=UTF-8\'\'' . rawurlencode($filename), ]; return response()->make($mail_template->template, 200, $headers); }