- ファイルのパスを指定してダウンロードする方法:
use Illuminate\Support\Facades\Response;
use Illuminate\Support\Facades\Storage;
public function downloadFile()
{
$filePath = storage_path('app/public/example.pdf');
$fileName = 'example.pdf';
return Response::download($filePath, $fileName);
}
上記の例では、storage/app/public
ディレクトリにあるexample.pdf
ファイルをダウンロードします。Response::download()
メソッドを使用して、ファイルのパスとダウンロード時のファイル名を指定します。
- ファイルのコンテンツを生成してダウンロードする方法:
use Illuminate\Support\Facades\Response;
public function downloadFile()
{
$fileContent = "This is the content of the file.";
$fileName = 'example.txt';
return Response::make($fileContent, 200, [
'Content-Disposition' => 'attachment; filename=' . $fileName,
'Content-Type' => 'text/plain',
]);
}
上記の例では、ファイルのコンテンツを動的に生成してダウンロードします。Response::make()
メソッドを使用して、ファイルのコンテンツ、HTTPステータスコード、およびヘッダー情報を指定します。
これらはLaravelでファイルをブラウザから直接ダウンロードするための基本的な方法です。必要に応じて、ファイルのストリーミングや認証の組み込みなど、さまざまな拡張機能を利用することもできます。