1.文件流下载文件
axios实现:
1export function download(url, data){ 2 axios.post(baseurl+url,data,{responseType: 'blob'}) 3 .then(function (response) { 4 var filename = response.headers//下载后文件名 5 filename = filename["content-disposition"] 6 filename = filename.split(";")[1].split("filename=")[1]; 7 var blob = new Blob([response.data]) 8 var downloadElement = document.createElement('a'); 9 var href = window.URL.createObjectURL(blob); //创建下载的链接 10 downloadElement.href = href; 11 downloadElement.download = filename 12 document.body.appendChild(downloadElement); 13 downloadElement.click(); //点击下载 14 document.body.removeChild(downloadElement); //下载完成移除元素 15 window.URL.revokeObjectURL(href); //释放掉blob对象 16 }) 17 .catch(function (error) { 18 console.log("File download error!") 19 }) 20} 21
注意,想要获取headers中content-disposition的数据,服务端要加一个:
response.setHeader("Access-Control-Expose-Headers","Content-Disposition");
