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

Mary-Kate Olsen
Freigeben: 2024-11-04 15:20:02
Original
369 Leute haben es durchsucht

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";
Nach dem Login kopieren

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>
Nach dem Login kopieren

JavaScript:

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

Controller:

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

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);
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!