AJAX-Datei-Download: Handhabung von Klickereignissen und serverseitigem Dateiabruf
Wenn Sie versuchen, eine Datei über eine AJAX-Anfrage herunterzuladen, können Sie möglicherweise auf Herausforderungen stoßen. Lassen Sie uns das Problem untersuchen und eine Lösung anbieten.
In Ihrem Code haben Sie eine AJAX-Anfrage, die eine GET-Anfrage an „download.php“ sendet. Dieser Ansatz ist jedoch nicht für Dateidownloads geeignet. Um einen Dateidownload zu starten, ist eine andere Strategie erforderlich.
Lösung:
Anstelle einer AJAX-Anfrage wird empfohlen, „window.location“ zu verwenden. Verfahren. Mit dieser Methode können Sie zu einer bestimmten URL navigieren, die den Dateidownload auslöst. Das folgende Code-Snippet zeigt, wie Sie dies erreichen:
function downloadFile() { window.location = "download.php"; }
Auf der Serverseite sollte Ihr PHP-Skript („download.php“) so konfiguriert sein, dass es Dateidownloads verarbeitet, indem entsprechende HTTP-Header festgelegt und gesendet werden Dateiinhalt. Das folgende Codebeispiel zeigt ein Beispiel dafür, wie dies implementiert werden kann:
header("Cache-Control: public"); header("Content-Description: File Transfer"); header("Content-Disposition: attachment; filename= file.txt"); header("Content-Transfer-Encoding: binary"); readfile("file.txt");
Indem Sie diese Schritte befolgen, können Sie erfolgreich einen Dateidownload auslösen, wenn ein Benutzer auf eine Schaltfläche auf Ihrer Webseite klickt.
Das obige ist der detaillierte Inhalt vonWie löst man Dateidownloads mit JavaScript statt AJAX aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!