Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Muat Turun Fail PDF daripada Rentetan Binari yang Dipulangkan oleh Perkhidmatan Web Menggunakan JavaScript?

Bagaimana untuk Muat Turun Fail PDF daripada Rentetan Binari yang Dipulangkan oleh Perkhidmatan Web Menggunakan JavaScript?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-29 05:40:02579semak imbas

How to Download a PDF File from a Binary String Returned by a Web Service Using 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn