vue.js - 使用 axios 下载 zip 文件,但 zip 文件损坏,无法解压
问题描述
我正在开发一个 vue 项目,我正在获取一个 zip 文件作为对烧瓶 API 的响应。但是当我使用 axios 下载 zip 文件时,zip 文件已损坏,而不是解压缩
# flask
@updown.route('/download1', methods=['POST'])
@auth.login_required
def download1():
req = request.json
dirname = '/data/pub/'
basename = f'{req["a"]}.zip'
response = make_response(send_from_directory(dirname, basename, as_attachment=True))
response.headers['Access-Control-Expose-Headers'] = 'X-filename'
response.headers["X-filename"] = basename
return response
// Vue
const instance = axios.create({
baseURL: 'http://x.x.x.x:5000/api/',
headers: { 'Content-Type': 'application/json; application/octet-stream' },
responseType: 'blob'
})
---
async clickData (row) {
const res = await this.$http.post('updown/download1', { a: row.jobid })
const blob = new Blob([res.data])
const fileName = res.headers['x-filename']
const urlObject = window.URL || window.webkitURL || window
const url = urlObject.createObjectURL(blob)
const el = document.createElement('a')
el.href = url
el.download = fileName
el.click()
urlObject.revokeObjectURL(url)
}
解决方案
推荐阅读
- android-fragments - 从 Kotlin 片段中的 Activity 获取上下文
- javascript - 未捕获(承诺中)类型错误:无法读取未定义的属性“0”。从 csv 文件中提取以填充数组
- wpf - 有没有办法在除调试之外的配置中使用 XAML 的热重载功能?
- javascript - 是否可以将多个功能传递给导航项?
- r - 如何将此 for 循环转换为应用函数?
- php - 获取每个 ID 的最后一条记录
- ember.js - geolib 的导入在 Ember-cli 中不起作用
- javascript - 我正在尝试将 JSON 数据的值存储在 servlet 的数组中,但它显示 post.map 不起作用
- javascript - HTML 多选选项组选择框始终滚动到顶部
- python - 在 Python 中多次创建海龟对象