this.$axios .post(url接口地址, params請求參數, { headers: { token: token }, responseType: "arraybuffer" }) .then((file) => { let content = file.data; // 組裝a標簽 let elink = document.createElement("a"); // 設置下載文件名 elink.download = "附件.zip"; elink.style.display = "none"; let blob = new Blob([content], {type: "application/zip"}) elink.href = URL.createObjectURL(blob); document.body.appendChild(elink); elink.click(); document.body.removeChild(elink); })
注意:responseType應設置為:'arraybuffer',這樣返回的文件流才會是二進制的,才能使用new Blob得到正確的文件