/ app / Http / Controllers / FileController.php
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  }