Heim >Web-Frontend >js-Tutorial >Wie erzwinge ich das Herunterladen einer CSV-Datei über AJAX in PHP?
Frage:
Wie kann ich den Download einer CSV-Datei über AJAX erzwingen? Aufruf in PHP?
Hintergrund:
Sie haben eine AJAX-Funktion erstellt, die eine CSV-Datei basierend auf Benutzereingaben generiert. Nach der Erstellung möchten Sie die Datei automatisch herunterladen, ohne den Benutzer dazu aufzufordern.
PHP-Code:
In Ihrer PHP-Datei (csv.php) haben Sie versucht, dies zu tun Verwenden Sie das folgende Skript, um das Herunterladen der CSV-Datei zu erzwingen:
<code class="php">$fileName = 'file.csv'; $downloadFileName = 'newfile.csv'; if (file_exists($fileName)) { header('Content-Description: File Transfer'); header('Content-Type: text/csv'); header('Content-Disposition: attachment; filename='.$downloadFileName); ob_clean(); flush(); readfile($fileName); exit; } echo "done";</code>
Problem:
Wenn Sie dieses Skript am Ende von csv.php ausführen, wird der Inhalt von Die Datei wird auf der Seite angezeigt, anstatt heruntergeladen zu werden.
Lösung:
AJAX kann nicht zum direkten Herunterladen von Dateien verwendet werden. Um das Herunterladen der Datei zu erzwingen, können Sie eine der folgenden Methoden verwenden:
Beispiel:
Sie können Ihre AJAX-Funktion wie folgt ändern, um ein neues Fenster mit dem Download-Link zu öffnen:
<code class="javascript">function csv() { ajaxRequest = ajax(); postdata = "data=" + document.getElementById("id").value; ajaxRequest.onreadystatechange = function () { var ajaxDisplay = document.getElementById('ajaxDiv'); if (ajaxRequest.readyState == 4 && ajaxRequest.status == 200) { window.open(ajaxRequest.responseText); // Pop up a new window with the download link } } ajaxRequest.open("POST", "csv.php", false); ajaxRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); ajaxRequest.send(postdata); }</code>
Das obige ist der detaillierte Inhalt vonWie erzwinge ich das Herunterladen einer CSV-Datei über AJAX in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!