Rumah > Artikel > hujung hadapan web > Bagaimana untuk Muat Turun Fail PDF daripada Rentetan Binari yang Dipulangkan oleh Perkhidmatan Web Menggunakan JavaScript?
Cara Membina Fail PDF daripada Rentetan Binari yang Dikembalikan daripada Perkhidmatan Web Menggunakan JavaScript
Pertemuan timbul apabila cuba memberikan fail PDF daripada rentetan binari yang diterima melalui permintaan Ajax. Pelayar web, iaitu Firefox dan Internet Explorer 9, menimbulkan cabaran apabila menggunakan penyelesaian data:uri.
Isu
Rentetan binari yang diterima menyerupai yang berikut:
%PDF-1.4.... ..... ....hole data representing the file .... %% EOF
Percubaan Penyelesaian
Membenamkan data melalui data:uri terbukti berkesan dalam Opera dan Chrome tetapi gagal dalam Firefox dan Internet Explorer.
Penyelesaian Berpotensi
Pertimbangkan untuk membina fail PDF pada sistem fail untuk membolehkan muat turun pengguna. Kaedah ini memerlukan penyelesaian sebelah klien dan keserasian dengan penyemak imbas utama.
Penyelesaian Disemak
Ubah suai XMLHttpRequest responseType kepada "gumpalan." Kemudian, gantikan fungsi window.open dengan atribut muat turun pada elemen . Proses ini memulakan muat turun respons XMLHttpRequest sebagai fail ".pdf".
<code class="javascript">var request = new XMLHttpRequest(); request.open("GET", "/path/to/pdf", true); request.responseType = "blob"; request.onload = function (e) { if (this.status === 200) { // `blob` response console.log(this.response); // create `objectURL` of `this.response` : `.pdf` as `Blob` var file = window.URL.createObjectURL(this.response); var a = document.createElement("a"); a.href = file; a.download = this.response.name || "detailPDF"; document.body.appendChild(a); a.click(); // remove `a` following `Save As` dialog, // `window` regains `focus` window.onfocus = function () { document.body.removeChild(a) } }; }; request.send();</code>
Atas ialah kandungan terperinci Bagaimana untuk Muat Turun Fail PDF daripada Rentetan Binari yang Dipulangkan oleh Perkhidmatan Web Menggunakan JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!