Quantcast
Channel: Laravel News
Viewing all articles
Browse latest Browse all 1870

Discover File Downloads in Laravel with Storage::download

$
0
0

Discover File Downloads in Laravel with Storage::download


Laravel's Storage::download simplifies secure file serving by providing a clean API for handling downloads while managing file storage abstraction.

<?php

namespace App\Http\Controllers;

use Illuminate\Support\Facades\Storage;

class FileController extends Controller
{
    public function download($filename)
    {
        return Storage::download(
            "documents/{$filename}",
            "custom-{$filename}",
            ['Content-Type' => 'application/pdf']
        );
    }
}

Here is an example of using the Storage::download() in a sample controller:

<?php

namespace App\Http\Controllers;

use App\Models\Document;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;

class DocumentController extends Controller
{
    public function download(Request $request, Document $document)
    {
        if (!$request->user()->canDownload($document)) {
            abort(403);
        }

        if (!Storage::exists($document->path)) {
            abort(404, 'File not found');
        }

        $document->increment('download_count');

        return Storage::download(
            $document->path,
            $document->original_name,
            [
                'Content-Type' => $document->mime_type,
                'Content-Disposition' => 'attachment',
                'Cache-Control' => 'no-cache, must-revalidate'
            ]
        );
    }
}

All in all, Storage::download provides a secure, efficient way to serve files while abstracting storage provider details.

The post Discover File Downloads in Laravel with Storage::download appeared first on Laravel News.

Join the Laravel Newsletter to get Laravel articles like this directly in your inbox.


Viewing all articles
Browse latest Browse all 1870

Latest Images

Trending Articles



Latest Images