So laden Sie eine Datei über AJAX in PHP herunter
Das Herunterladen von Dateien über einen AJAX-Aufruf in PHP erfordert kreative Ansätze, die über die herkömmlichen AJAX-Methoden hinausgehen. So können Sie dieser Herausforderung begegnen:
Anstatt AJAX zum Herunterladen von Dateien zu verwenden, sollten Sie erwägen, ein neues Fenster zu öffnen und dessen Adresse auf den Download-Link festzulegen. Dies ist eine einfache und effektive Technik.
Alternativ können Sie die document.location-Eigenschaft von JavaScript verwenden, um den Browser des Benutzers direkt zum Download-Link umzuleiten. Hier ist ein Beispiel:
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) { document.location = 'download.php?filename=' + ajaxRequest.responseText; } }; ajaxRequest.open("POST", "csv.php", false); ajaxRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); ajaxRequest.send(postdata); }
Dieser Code erstellt ein separates PHP-Skript namens download.php, das für das Herunterladen der im Dateinamenparameter angegebenen Datei verantwortlich ist.
Verwenden Sie in download.php Folgendes Codeausschnitt, um den Dateidownload zu erzwingen:
$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; }
Das obige ist der detaillierte Inhalt vonWie lade ich Dateien effektiv mit AJAX und PHP herunter?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!