Heim >Backend-Entwicklung >PHP-Tutorial >Wie lade ich Dateien in Laravel mit Response::download herunter?

Wie lade ich Dateien in Laravel mit Response::download herunter?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-04 15:20:02501Durchsuche

How to Download Files in Laravel Using Response::download?

Herunterladen von Dateien in Laravel mit Response::download

In Laravel ermöglicht die Response::download-Methode Benutzern das Herunterladen von Dateien vom Server . Hier ist eine Lösung für die Probleme, die bei der Implementierung dieser Funktionalität auftreten:

1. Problem mit dem Dateipfad:

Der Fehler „Die Datei...nicht vorhanden“ weist auf einen falschen Dateipfad hin. Um dieses Problem zu beheben, verwenden Sie den Helfer public_path(), um den vollständigen physischen Pfad zur Datei anzugeben:

$file= public_path(). "/download/info.pdf";

2. Verhindern der Seitennavigation:

Um das Navigieren zu einer anderen Ansicht oder Route zu vermeiden, verwenden Sie eine Ajax-Anfrage, um den Dateidownload abzuwickeln. So geht's:

ViewController:

<button class="btn btn-large pull-right" data-href="/download" id="downloadBtn">
    <i class="icon-download-alt"></i> Download Brochure
</button>

JavaScript:

$(document).ready(function() {
    $('#downloadBtn').click(function() {
        $.ajax({
            url: $(this).data('href'),
            success: function() {
                alert('File downloaded successfully!');
            },
            error: function() {
                alert('Error downloading file!');
            }
        });
    });
});

Controller:

public function getDownload()
{
    // Same code as before, but now it returns a JSON response
    return response()->json([
        'success' => true,
        'message' => 'File downloaded successfully!'
    ]);
}

Update für Laravel v5.0:

Wie in der Lösung erwähnt, können Sie stattdessen die Methode „response()“ in Laravel v5.0 verwenden der Response-Fassade. Auch die Header-Struktur ist etwas anders, wie unten gezeigt:

$headers = [
    'Content-Type' => 'application/pdf',
];

return response()->download($file, 'filename.pdf', $headers);

Das obige ist der detaillierte Inhalt vonWie lade ich Dateien in Laravel mit Response::download herunter?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn