Maison >développement back-end >tutoriel php >Découvrez les téléchargements de fichiers dans Laravel avec Storage :: Télécharger

Découvrez les téléchargements de fichiers dans Laravel avec Storage :: Télécharger

James Robert Taylor
James Robert Taylororiginal
2025-03-06 02:22:091018parcourir

Discover File Downloads in Laravel with Storage::download

La méthode

Laravel Framework Storage::download fournit une API concise pour gérer en toute sécurité les téléchargements de fichiers tout en gérant les abstractions du stockage de fichiers.

Ce qui suit est un exemple d'utilisation Storage::download() dans l'exemple de contrôleur:

<?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']
        );
    }
}

Un autre exemple plus complexe, qui combine le traitement de l'autorisation et de la non-existence du fichier:

<?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'
            ]
        );
    }
}

Dans l'ensemble, Storage::download fournit un moyen sûr et efficace de servir les fichiers tout en cachant les détails du fournisseur de stockage sous-jacent.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn