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

Mary-Kate Olsen
Lepaskan: 2024-10-29 05:40:02
asal
578 orang telah melayarinya

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
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan