Descărcare Fișiere și Streaming cu response()->download() în Laravel

routing Laravel 11.x / PHP 8.2+ Q&A / Distribuie cod

Trimiterea de fișiere descărcabile către browser cu setarea automată a antetelor Content-Disposition și streaming de date masive fără blocarea RAM.

Sintaxă
response()->download($path, 'factura.pdf') / response()->streamDownload(...)

Pentru a livra fișiere stocate local sau în cloud direct ca descărcare către utilizator, helperul response()->download($cale, $numeAfisat) generează antetele HTTP corespunzătoare pentru forțarea ferestrei de descărcare.

Pentru generarea dinamică de date voluminoase (cum ar fi exporturi CSV cu zeci de mii de linii), metoda response()->streamDownload() consumă un callback anonim și trimite datele direct în flux, eliminând necesitatea creării unui fișier temporar pe disc.

Exemplu: Export CSV în flux prin streamDownload
use App\Models\User;
use Illuminate\Support\Facades\Response;

public function exportUsersCsv()
{
    return response()->streamDownload(function () {
        $handle = fopen('php://output', 'w');
        fputcsv($handle, ['ID', 'Nume', 'Email']);

        User::chunk(200, function ($users) use ($handle) {
            foreach ($users as $user) {
                fputcsv($handle, [$user->id, $user->name, $user->email]);
            }
        });

        fclose($handle);
    }, 'utilizatori.csv', ['Content-Type' => 'text/csv']);
}

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Descărcare Fișiere și Streaming cu response()->download()

Ai o nelămurire despre utilizarea comenzii Descărcare Fișiere și Streaming cu response()->download() sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.