项目中用到流文件下载的需求,之前使用的方法一直都没问题,但是这次就是下载不下来,查了多种方法终于解决了,方式如下:
1// 下载文件 2downLoadFile(e) { 3 let id = e.target.dataset.id; 4 let name = e.target.dataset.name; 5 6 if(e.target.dataset.id) { 7 this.$https({ 8 method: 'get', 9 url: '/wyxt_ubqts_oncloud/common/download', 10 params: { 11 'file_id': '526f260d-73c1-422e-b10e-c0a2fe91364d' 12 }, 13 responseType: "blob" 14 }).then(res => { 15 // console.log(res) 16 // const fileName = res.headers["content-disposition"].split("=")[1]; 17 const _res = res.data; 18 let blob = new Blob([_res], {type: 'application/pdf'}); 19 let downloadElement = document.createElement("a"); 20 let href = window.URL.createObjectURL(blob); //创建下载的链接 21 downloadElement.href = href; 22 // downloadElement.download = fileName; //下载后文件名 23 downloadElement.download = name; //下载后文件名 24 document.body.appendChild(downloadElement); 25 downloadElement.click(); //点击下载 26 document.body.removeChild(downloadElement); //下载完成移除元素 27 window.URL.revokeObjectURL(href); //释放掉blob对象 28 }); 29 } 30},