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!