當(dāng)前位置:
首頁(yè) >
前端技术
> javascript
>内容正文
javascript
JavaScript下载文件下载 [Blob]
生活随笔
收集整理的這篇文章主要介紹了
JavaScript下载文件下载 [Blob]
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
HttpServletResponse下載壓縮文件流報(bào)錯(cuò),壓縮文件錯(cuò)誤或不可預(yù)料的壓縮文件末端
錯(cuò)誤可能
(0)如果用Blob處理response的流,則ajax請(qǐng)求中需要填寫(xiě)responseType: ‘blob’
(1)文件流沒(méi)有正確關(guān)閉, 比如OutPutStream。
(2)文件流關(guān)閉順序錯(cuò)誤,應(yīng)該按照先打開(kāi)的流后關(guān)閉,后打開(kāi)的流先關(guān)閉的順序。
(3)在final中關(guān)閉流,但是return雖然是最后執(zhí)行,但是如果return放在try里面,return會(huì)先報(bào)存結(jié)果,在finally執(zhí)行后,再返回。導(dǎo)致文件流沒(méi)有讀取完整。 所以return應(yīng)該放在方法的最后。
js處理后端返回字節(jié)流的代碼
// ajax export function exportXml(data) {return request({url: `${process.env.VUE_APP_API_MY}/transactionauditdata/v1/exportXml`,method: 'post',data: data, responseType: 'blob' // 聲明返回的request為bolb格式,否則Blob處理流會(huì)報(bào)錯(cuò)}) }// download Function export function commonDownload(res){// tar包,如果是zip,則為application/x-zip-compressedvar blob = new Blob([res.data], { type: 'application/x-tar' })let linkNode = document.createElement('a')linkNode.download = fileName + '.tar'linkNode.style.display = 'none'linkNode.href = URL.createObjectURL(blob)document.body.appendChild(linkNode)linkNode.click()URL.revokeObjectURL(linkNode.href)document.body.removeChild(linkNode) }總結(jié)
以上是生活随笔為你收集整理的JavaScript下载文件下载 [Blob]的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 微信小程序开发入门与实战(Behavio
- 下一篇: 腾讯云不同账号内网联通