Heim > Backend-Entwicklung > PHP-Tutorial > Wie lade ich Dateien aus einer Ansicht in Laravel ohne Navigation herunter?

Wie lade ich Dateien aus einer Ansicht in Laravel ohne Navigation herunter?

Susan Sarandon
Freigeben: 2024-11-04 12:23:29
Original
1052 Leute haben es durchsucht

How to Download Files from a View in Laravel Without Navigation?

Herunterladen von Dateien in Laravel mit Response::download

Viele Entwickler stehen vor Herausforderungen, wenn sie versuchen, Benutzern das Herunterladen von Dateien innerhalb einer Ansicht ohne Navigation zu ermöglichen . Dieser Artikel geht auf häufige Probleme ein und bietet eine Lösung.

Problem:
Der Dateipfad „/public/download/info.pdf“ existiert nicht und die Schaltfläche „Herunterladen“ navigiert durch die Datei Benutzer zu einer anderen Ansicht wechseln, anstatt den Download zu starten.

Potenziell Lösung:

1. Richtiger Dateipfad:

Das erste Problem ergibt sich aus dem falschen Dateipfad. Anstelle von „./download/info.pdf“ sollten Sie den vollständigen physischen Pfad angeben:

<code class="php">$file = public_path(). "/download/info.pdf";</code>
Nach dem Login kopieren

2. Navigation vermeiden:

Um die Benutzernavigation zu verhindern, ersetzen Sie die Schaltfläche durch Folgendes:

<code class="html"><a href="#" onclick="downloadFile();" class="btn btn-large pull-right"><i class="icon-download-alt"></i> Download Brochure</a></code>
Nach dem Login kopieren

3. JavaScript-Funktion:

Fügen Sie eine JavaScript-Funktion hinzu, um den Download abzuwickeln:

<code class="javascript">function downloadFile() {
    var url = "/download";
    window.location.href = url;
    return false;
}</code>
Nach dem Login kopieren

4. Aktualisierter Controller:

Ändern Sie den Controller, um die Datei mit den richtigen Headern zurückzugeben:

<code class="php">public function getDownload()
{
    $headers = ['Content-Type' => 'application/pdf'];

    return response()->download($file, 'filename.pdf', $headers);
}</code>
Nach dem Login kopieren

Hinweis für Laravel 5 und höher:

Für Versionen 5 und höher verwenden Sie „response()->download()“ anstelle von „Response::download()“. Darüber hinaus sollte das Header-Array als assoziatives Array formatiert sein:

<code class="php">$headers = [
    'Content-Type' => 'application/pdf',
];</code>
Nach dem Login kopieren

Durch die Implementierung dieser Aktualisierungen startet die Schaltfläche „Herunterladen“ den Dateidownload in derselben Ansicht, ohne dass der Benutzer weggeleitet wird.

Das obige ist der detaillierte Inhalt vonWie lade ich Dateien aus einer Ansicht in Laravel ohne Navigation 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