Heim >Backend-Entwicklung >PHP-Tutorial >Wie erzwinge ich mit AJAX und PHP das Herunterladen einer Datei, anstatt ihren Inhalt anzuzeigen?
Datei über AJAX-Aufruf PHP herunterladen
Problem:
Eine Ajax-Funktion ruft Daten ab eine PHP-Datei. Obwohl ein PHP-Skript verwendet wird, um am Ende des Skripts einen Dateidownload zu veranlassen, wird stattdessen der Inhalt der Datei auf der Seite angezeigt. Wie kann das Herunterladen der Datei erzwungen werden?
Antwort:
AJAX ist nicht für Dateidownloads gedacht. Um einen Dateidownload zu erzwingen, ziehen Sie die folgende Lösung in Betracht:
Verwenden Sie die JavaScript-Methoden window.open() oder document.location =, um ein neues Fenster mit dem Download-Link als Adresse zu öffnen.
Beispiel für die Verwendung von window.open():
window.open('download.php?file=file.csv');
Beispiel für die Verwendung document.location:
document.location = 'download.php?file=file.csv';
Überarbeitetes PHP-Skript:
$fileName = 'file.csv'; $downloadFileName = 'newfile.csv'; if (file_exists($fileName)) { // Determine the download script URL $downloadURL = 'download.php?file=' . $fileName; // Output JavaScript to open a new window with the download script URL echo '<script type="text/javascript">window.open("' . $downloadURL . '");</script>'; exit; }
Diese Lösung fordert den Download der Datei „file.csv“ an, ohne sie anzuzeigen Inhalte auf der Seite.
Das obige ist der detaillierte Inhalt vonWie erzwinge ich mit AJAX und PHP das Herunterladen einer Datei, anstatt ihren Inhalt anzuzeigen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!