关于ie浏览器下载文件,后台给的是文件地址
在项目过程中遇到文件下载 要兼容ie浏览器,但是后台给的是文件地址,ie 不支持 a标签链接下载
解决思路是 使用请求将数据请求回来,在使用文件流的方式下载
首先我们先在项目中写模拟请求
// ie 文件下载
export function exportExcelBlob(url) {return request({url: url,//文件下载的地址,调用时传入responseType: "blob",//要求返回值类型为blob类型, 文件类型method: 'get'//使用get方法, 一般给文件地址的都是get方法})
}
然后在请求返回的时候
if (window.navigator.msSaveOrOpenBlob) {//这个可以判断出是否是ie浏览器exportExcelBlob('后台给的url').then(response => {// console.log(response, 'response')window.navigator.msSaveBlob(response.data,'自己可以定义文件的名字')})
这里我在写下一般url 下载
let url = '后台给的url'
let link = document.createElement('a')//创建a标签
link.style.display = 'none'//隐藏a标签
link.href = url
link.setAttribute('download',this.fileList[index].name ) // 给a标签加上download 属性,
document.body.appendChild(link)//将a标签加上body标签
link.click()//a标签点击下
这边文章可以帮助你