Heim  >  Artikel  >  Backend-Entwicklung  >  Beispielcode für die Implementierung der Datei-Download-Funktion mithilfe des Laravel-Frameworks

Beispielcode für die Implementierung der Datei-Download-Funktion mithilfe des Laravel-Frameworks

黄舟
黄舟Original
2017-09-15 09:35:142797Durchsuche

Dieser Artikel konzentriert sich auf die Einführung des Beispielcodes von Laravel zur Implementierung der Datei-Download-Funktion. Freunde, die ihn benötigen, können darauf verweisen

Die letzte LTS-Version (Langzeitunterstützung) von Laravel ist Laravel 5.1. die im Juni 2015 veröffentlicht wurde. Gemäß der Vereinbarung zur LTS-Version endet der zweijährige Bugfix-Support Mitte dieses Jahres, sodass zwangsläufig Mitte dieses Jahres eine LTS-Nachfolgeversion veröffentlicht wird Laravel 5.5. Dieser Artikel konzentriert sich auf die Einführung der Datei-Download-Funktion in Laravel. Bitte lesen Sie diesen Artikel. Mit der

Download-Methode kann eine Antwort generiert werden, die den Browser des Benutzers dazu zwingt, eine Datei mit einem angegebenen Pfad herunterzuladen . Die Download-Methode akzeptiert den Dateinamen als zweiten Parameter der Methode. Dieser Name ist der Dateiname, den der Benutzer beim Herunterladen der Datei sieht. Schließlich können Sie als dritten Parameter ein Array mit HTTP-Header-Informationen an die Methode übergeben:


return response()->download($pathToFile);
return response()->download($pathToFile, $name, $headers);

Das Folgende ist der Dateidownload, den ich in der Projektfunktion verwende.


public function downloadfile($filename)
  {
    $file = public_path().'/test.xls';
    return response()->download($file,$filename.'.xls');
  }

Allerdings verlief der Fortschritt am Anfang nicht sehr reibungslos. Der Fehler ist wie folgt:


FatalErrorException in HandleCors.php line 18:
Call to undefined method Symfony\Component\HttpFoundation\BinaryFileResponse::header()

Die allgemeine Bedeutung ist, dass die Header-Methode nicht definiert wurde. Nach verschiedenen Untersuchungen haben wir eine Lösung gefunden. Wir können den Header in der Handle-Methode neu definieren CorsMiddleware. Fügen Sie die folgende Methode hinzu:


class CorsMiddleware
{
  public function handle($request, Closure $next)
  {
    $response = $next($request);
    $response->headers->set('Access-Control-Allow-Origin' , '*');
    $response->headers->set('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT, DELETE');
    $response->headers->set('Access-Control-Allow-Headers', 'Content-Type, Accept, Authorization, X-Requested-With, Application');
    return $response;
  }
}

Nach der Neudefinition des Headers haben wir schließlich die Download-Funktion verwendet und festgestellt, dass normal darauf zugegriffen werden kann.

Zusammenfassung

Das obige ist der detaillierte Inhalt vonBeispielcode für die Implementierung der Datei-Download-Funktion mithilfe des Laravel-Frameworks. 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