Heim >Backend-Entwicklung >PHP-Tutorial >Wie erzwinge ich mit AJAX und PHP das Herunterladen einer Datei, anstatt ihren Inhalt anzuzeigen?

Wie erzwinge ich mit AJAX und PHP das Herunterladen einer Datei, anstatt ihren Inhalt anzuzeigen?

Barbara Streisand
Barbara StreisandOriginal
2024-12-05 06:45:11577Durchsuche

How to Force a File Download Instead of Displaying its Contents Using AJAX and PHP?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn