export function downloadFile(query) { return request({ url: '请求地址', method: 'get', params: query, responseType: 'blob' //声明流文件 }) }
发请求后的res
downloadFile(obj).then(res => { //1.我们需要通过blob对象来处理,需要模拟一个<a>标签来提供下载链接 const elink = document.createElement('a'); elink.style.display = 'none'; //2.blob是二进制大对象,接受后台返回的数据流,导出数据 const blob = new Blob([res]); //3.创建一个url 对象,并将blob实例作为参数传入,这样href的值就是以blob开头的一个文件流下载链接,类似于href="blob:http://127.0.0.1xxxxx" const blobUrl = URL.createObjectURL(blob); elink.href = blobUrl; elink.download = ‘下载的文件名’;//下载后的文件名 /4.将a标签加入body,并手动点击触发下载 document.body.appendChild(elink); elink.click(); document.body.removeChild(elink); })