FileController.php
1 <?php 2 3 namespace App\Http\Controllers; 4 5 use Illuminate\Http\Request; 6 use Illuminate\Support\Facades\Storage; 7 8 class FileController extends Controller 9 { 10 public function download(string $path) 11 { 12 logger()->info('Downloading file', ['path' => $path]); 13 14 if (!Storage::exists($path)) { 15 abort(404); 16 } 17 18 return response()->streamDownload(function () use ($path) { 19 $stream = Storage::readStream($path); 20 21 // Limpia los buffers de salida para evitar problemas de memoria 22 if (ob_get_level() > 0) { 23 ob_end_clean(); 24 } 25 26 // EnvĂa el flujo del archivo al cliente 27 fpassthru($stream); 28 29 // Cierra el flujo de lectura 30 fclose($stream); 31 }, basename($path)); 32 } 33 }