1. 程式人生 > 其它 >有關谷歌下載PDF檔案而不是直接開啟預覽的問題

有關谷歌下載PDF檔案而不是直接開啟預覽的問題

找了很多帖子,都不行,

解決方法把連結處理成blob檔案再呼叫下載。

但是仍然不行,最終原因找到:

缺少了這一部建立,需要把二進位制資料重新用 Blob物件申明下

let data = new Blob([blob], {
    type: "application/pdf;charset=UTF-8",
});

下面是方法:

// 下載
    downloadFile(file) {
      let url = this.handleImg(file);
      this.getBlob(url).then((blob) => {
        // 成功後下載
        this
.saveAs(blob, file); }); }, // 連結轉換blob檔案 getBlob(url) { return new Promise((resolve) => { const xhr = new XMLHttpRequest(); xhr.open("GET", url, true); xhr.responseType = "blob"; xhr.onload = () => { if (xhr.status === 200) { resolve(xhr.response); } }; xhr.send(); }); },
// 下載pdf saveAs(blob, filename) { let a = document.createElement("a"); let data = new Blob([blob], { type: "application/pdf;charset=UTF-8", }); a.style.display = "none"; a.download = filename; a.href = URL.createObjectURL(data); document.body.appendChild(a); a.click(); document.body.removeChild(a); window.URL.revokeObjectURL(a.href);
//釋放記憶體 },