Cara Muat Turun Fail Melalui AJAX dalam PHP
Memuat turun fail melalui panggilan AJAX dalam PHP memerlukan pendekatan kreatif melangkaui kaedah AJAX konvensional. Begini cara untuk menangani cabaran ini:
Daripada menggunakan AJAX untuk muat turun fail, pertimbangkan untuk membuka tetingkap baharu dan menetapkan alamatnya kepada pautan muat turun. Ini adalah teknik yang mudah dan berkesan.
Sebagai alternatif, anda boleh menggunakan sifat document.location JavaScript untuk mengubah hala penyemak imbas pengguna terus ke pautan muat turun. Berikut ialah contoh:
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); }
Kod ini mencipta skrip PHP berasingan yang dipanggil download.php, bertanggungjawab untuk memuat turun fail yang dinyatakan dalam parameter nama fail.
Dalam download.php, gunakan yang berikut coretan kod untuk memaksa muat turun fail:
$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; }
Atas ialah kandungan terperinci Bagaimana untuk memuat turun fail dengan berkesan menggunakan AJAX dan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!