Heim > Artikel > Backend-Entwicklung > Beispielcode für die Implementierung der Datei-Download-Funktion mithilfe des Laravel-Frameworks
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!