upFile () { const opt = { url: '/api/shop/exportTemplateInfoExcel', //请求链接 method: 'get', //请求方式,如果是‘post’,则可配合data使用传参 responseType: 'blob', //响应体:一般都基于blob处理 headers: { 'filename': 'utf-8', 'Access-Token': this.token } //请求头设置,由于一般请求都被封装了,使用原生axios请求,如果请求头要传例如token参数,可在此处设置 } axios.request(opt).then(res => { // Blob 对象表示一个不可变、原始数据的类文件对象(File 接口都是基于Blob) const blob = res.data // FileReader 对象允许Web应用程序异步读取存储在用户计算机上的文件的内容 const fileReader = new FileReader() // 开始读取指定的Blob中的内容。读取完成result属性中将包含一个data: URL格式的Base64字符串以表示所读取文件的内容 fileReader.readAsDataURL(blob) // 处理load事件,该事件在读取操作完成时触发 fileReader.onload = (event) => { const a = document.createElement('a') a.download = '店铺导入模板' + '.xlsx' a.href = event.target.result document.body.appendChild(a) a.click() document.body.removeChild(a) } }) }
基于ajax或者axios的前端下载请求
最新推荐文章于 2024-04-20 06:34:19 发布