后端给了一个二进制流文件地址,我要如何在前端实现下载功能呢?
现在的代码
/*
拿到并储存文件后缀
*/
response hoader {
content-disposition: attachment;filename=xxx.xlsx
}
const disposition = response.headers['content-disposition']
const suffix = disposition.split('.').slice(-1)[0]
Vue.ls.set('DOWNLOAD_FILE_NAME', `.${suffix}`)
下面我准备用拿到的suffix
匹配MIME
类型
/*
模拟点击a标签效果
*/
const suffix = Vue.ls.get('DOWNLOAD_FILE_NAME')
const blob = new Blob([value], {
type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
})
const url = window.URL.createObjectURL(blob)
const link = document.createElement('a')
link.style.display = 'none'
link.href = url
link.setAttribute('download', ${fileName})
document.body.appendChild(link)
link.click()
document.body.removeChild(link)
期望有更好de实现方法
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
![扫码二维码加入Web技术交流群](/public/img/jiaqun_03.jpg)
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这样挺好了,不然后端干嘛要传流,直接文件链接不是更好?