0
点赞
收藏
分享

微信扫一扫

3.1 下载文件

吓死我了_1799 2022-03-20 阅读 94

1. 后端

设置 header, 并将文件流返回

response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + URLEncoder.encode("your file name", "UTF-8") + ".xlsx");
// 将文件流返回

参考: https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Content-Disposition

2. 前端下载

2.1 浏览器托管下载

浏览器托管就是用 window.open 的方式下载,这个时候会根据 response.header 中的属性进行解析下载。不过对于要做权限验证的请求不太方便。可以用js的方式下载

window.location.href = '你的下载链接'
window.open('你的下载链接', '__blank');

2.2 js 下载

js 下载就是将内容转化成 Blob, 然后通过浏览器下载
Blob 对象表示一个不可变、原始数据的类文件对象。它的数据可以按文本或二进制的格式进行读取,也可以转换成 ReadableStream 来用于数据操作。

如果想让返回内容是 blob 格式 需要设置 request.responseType = 'blob’

const blob = resp.data
const url = window.URL.createObjectURL(blob)
const a = document.createElement('a')
a.style.display = 'none'
a.href = url
// the filename you want
a.download = '值班表.xlsx'
document.body.appendChild(a)
a.click()
window.URL.revokeObjectURL(url)
举报

相关推荐

rust下载文件

axios下载文件

JavaWeb:下载文件

js下载文件

javaweb下载文件

download 下载文件

vue 下载文件

0 条评论