Dateien zum Herunterladen und Weiterleiten in PHP generieren
In Webanwendungen ist es oft notwendig, Dateien auf dem Server zu generieren und Benutzer zum Herunterladen aufzufordern ihnen. PHP bietet eine einfache Möglichkeit, dies mithilfe von Headern zu erreichen. Es kann jedoch auch vorkommen, dass Sie Benutzer auf eine neue Seite umleiten müssen, nachdem die Datei generiert wurde und die Download-Eingabeaufforderung angezeigt wird.
Die Herausforderung der Umleitung nach dem Dateidownload
Das von Ihnen bereitgestellte Code-Snippet richtet erfolgreich die erforderlichen Header ein, um einen CSV-Download zu erzwingen. Das Hinzufügen eines Redirect-Headers am Ende („header(„Location: /newpage“)“) funktioniert jedoch nicht wie erwartet. Dies liegt daran, dass die Header bereits gesendet werden, wenn der Inhalt wiedergegeben wird, und nachfolgende Aktionen (z. B. Weiterleitungen) nicht durchgeführt werden können, bevor der Inhalt vollständig an den Browser gesendet wurde.
Alternativer Ansatz
Anstatt nach der Download-Eingabeaufforderung weiterzuleiten, wird empfohlen, Benutzer auf eine „letzte“ Seite umzuleiten, auf der sie über den erfolgreichen Start des Downloads informiert werden können. Auf dieser letzten Seite kann den Benutzern eine Meldung angezeigt werden, z. B. „Ihr Download sollte automatisch starten. Wenn nicht, klicken Sie hier, um den Download durchzuführen.“
Download automatisch starten
An Um den Download nach der Weiterleitung zur letzten Seite automatisch zu starten, können Sie die folgenden Techniken verwenden:
Implementierungsbeispiel
Hier ist ein Beispiel dafür So können Sie Benutzer umleiten und den Download automatisch starten:
header('Content-Type: application/csv'); header("Content-length: " . filesize($NewFile)); header('Content-Disposition: attachment; filename="' . $FileName . '"'); echo $content; // Set a redirect header to the final page header("Location: /final-page.php"); exit();
<!-- final-page.php --> Your download should start automatically. If not, click <a href="create_csv.php">here</a> to download.
Mit diesem Ansatz können Sie Benutzer auf eine andere Seite umleiten und sicherstellen, dass der Dateidownload sofort gestartet wird, ohne dass ein manueller Eingriff erforderlich ist.
Das obige ist der detaillierte Inhalt vonWie kann ich Benutzer nach einem Dateidownload in PHP umleiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!