PHP

【Laravel】ファイルのダウンロード方法

動作環境

  • 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>

ルーティングも設定する。

これで「ダウンロードする」をクリックするとファイルダウンロードできるようになります。

  • この記事を書いた人

コウダイ

文系・ノースキル・完全未経験・アラサー・地方住み・残業100時間超えの社畜ホテルマンから都内上場IT企業のフルリモートWebエンジニアに転職した人。

都内上場IT企業に勤務するWebエンジニア5年目|プログラミングスクールのテックキャンプ公式アンバサダー|新卒で手取り18万の地方ホテルマン6年→プログラミングを900時間勉強→転職活動100社以上応募→アラサー未経験から7ヶ月でフルリモートのWebエンジニアに転職し年収100万円UP|33歳2児のパパ|ブログ歴4年→月間6,000PV|エンジニア転職ノウハウ、プログラミング、Web制作、副業での稼ぎ方など、「時間や場所に縛られずに稼ぐ」方法を発信しています。

-PHP