Heim > Backend-Entwicklung > PHP-Tutorial > Wie löst man einen Dateidownload mit AJAX aus: Direkter Download oder serverseitige Umleitung?

Wie löst man einen Dateidownload mit AJAX aus: Direkter Download oder serverseitige Umleitung?

Mary-Kate Olsen
Freigeben: 2024-12-17 00:12:24
Original
948 Leute haben es durchsucht

How to Trigger a File Download Using AJAX:  Direct Download or Server-Side Redirect?

Datei mit AJAX-Anfrage herunterladen

Beim Versuch, eine „Ajax-Download-Anfrage“ per Knopfdruck zu initiieren, ist es üblich, Code wie den zu implementieren unten:

var xhr = new XMLHttpRequest();
xhr.open("GET", "download.php");
xhr.send();
Nach dem Login kopieren

Zusammen mit dem folgenden PHP Skript:

<?
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename= file.txt");
header("Content-Transfer-Encoding: binary");    
readfile("file.txt");
?>
Nach dem Login kopieren

Dieser Ansatz führt jedoch möglicherweise nicht zum gewünschten Ergebnis. Um einen Download effektiv zu starten, sollten Sie die Implementierung einer der folgenden Alternativen in Betracht ziehen:

Option 1: Verwenden Sie das Attribut „Download“

In modernen Browsern wie Firefox und Chrome ist die Das Attribut „Download“ bietet eine bequeme Möglichkeit, Downloads von einer Webseite aus zu starten, ohne dass eine serverseitige Interaktion erforderlich ist. Hier ist ein Beispiel:

<a href="file.txt" download="file.txt">Download</a>
Nach dem Login kopieren

Option 2: Navigieren Sie mit AJAX oder Window.location zum Download-Skript

Wenn das Attribut „Download“ nicht geeignet ist Option können Sie AJAX oder window.location verwenden, um zum Download-Skript zu navigieren. Mit AJAX können Sie eine asynchrone Anfrage ausführen und dann die Erfolgsrückruffunktion verwenden, um zum Download-Skript umzuleiten:

$.ajax({
    url: 'download.php',
    type: 'POST',
    success: function() {
        window.location = 'download.php';
    }
});
Nach dem Login kopieren

Alternativ können Sie einfach window.location verwenden, um zum Download-Skript zu navigieren:

window.location = 'download.php';
Nach dem Login kopieren

Während der AJAX-Ansatz eine gewisse Flexibilität bietet, ist die Verwendung von window.location in der Regel effizienter und unkomplizierter.

Das obige ist der detaillierte Inhalt vonWie löst man einen Dateidownload mit AJAX aus: Direkter Download oder serverseitige Umleitung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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