動作環境
- Laravel 8.40.0
- PHP 8.0.3
- macOS 12.0.1
storage/appディレクトリに保存されたファイルをダウンロードする方法を解説いたします。
ファイルをstorageに用意する
ファイル構成は以下になります。
Laravel
┗ storage
┗ app
┗ public
┗ sample.csv
コントローラーを用意する
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Storage;
class FilesController extends Controller
{
public function download()
{
$filePath = 'public/sample.csv';
$fileName = 'sample.csv';
$mimeType = Storage::mimeType($filePath);
$headers = [['Content-Type' => $mimeType]];
return Storage::download($filePath, $fileName, $headers);
}
}
Bladeファイルを用意する
<a href="{{ route('file.download') }}">ダウンロードする</a>
ルーティングも設定する。
これで「ダウンロードする」をクリックするとファイルダウンロードできるようになります。