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
Freigeben: 2024-12-05 06:45:11
Original
589 Leute haben es durchsucht

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');
Nach dem Login kopieren

Beispiel für die Verwendung document.location:

document.location = 'download.php?file=file.csv';
Nach dem Login kopieren

Ü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;
}
Nach dem Login kopieren

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!

Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage