封装得下载代码是这样的 // 下载二进制文件流 export function downloadDock(data,relativePath,downPath) { // data 文档的内容 // relativePath 文档的名字 // downPath 文档的路径 let blob = new Blob([data], { type: ‘application/vnd.ms-excel,charset=utf-8’ }); let url =window.URL.createObjectURL(blob); let suffix = downPath.match(/.([^.]+)KaTeX parse error: Expected 'EOF', got '}' at position 135: … link.click(); }? vue中是这样使用的 // …loading({ lock:true, text:‘文档下载中…’, spinner:‘el-icon-loading’, background:‘rgba(0,0,0,0.7)’ }); let url = API_ROOT_Image +’/’+e.uploadDocPath axios.get(url,{ params:this.query, headers: { ‘Content-Type’: ‘application/json,charset=utf-8’,‘X-Access-Token’:getToken()}, responseType: ‘arraybuffer’, //二进制流 }).then(res => { downloadDock(res.data,‘鉴定报告’,url) this.docxLoading.close(); }).catch(e=>{ this.docxLoading.close(); }) }, 首先是通过接口返回一个文件的名字,然后我们拼接出完整的路径,请求这个路径,并且让返回的结果变成二进制文件流,最后再用blob转换一下格式。
记录一下开发当中遇见的问题,如果哪里有写的不对的,请多多指教。
|