gpt4 book ai didi

python - 使用 Vue.js 和 Python Flask 下载文件

转载 作者:行者123 更新时间:2023-12-01 07:09:47 24 4
gpt4 key购买 nike

我的 Flask 是一个 REST 服务器。

在我的 flask 路线上,这就是我所拥有的:

@app.route('/v1/download', methods=['POST'])
def download_tissue():
f = open('path_to_zip_file', 'rb') // or r for text file
return f.read()

(以前我使用的是 Flask 的 send_file()。但我不确定 send_file 做了什么,我不能只阅读它,我试图将情况简化为找出问题所在。)

在客户端上,我有一个发出异步请求的 Vue 应用程序:

axios.post('download')
.then((res) => {
let data = res.data;
const blob = new Blob([data], { type: 'application/zip' })
let link = document.createElement('a')
link.href = window.URL.createObjectURL(blob)
link.download = 'test.zip'
link.click()
})
.catch(error => {
console.error(error);
});

问题是我无法在 Mac 上解压缩它。无法将 test.zip 展开到下载中。 (错误 1 ​​- 不允许操作。)文件大小也是错误的。它几乎是 22 MB,而不是原来的 12 MB。

如果我打开纯文本文件,它可以工作,但不能打开 zip 文件。

最佳答案

好吧,我明白了。我实际上需要像这样配置 axios 响应类型:

axios({
url: url
method: 'POST',
responseType: 'blob', // important
})
.then((res) => {
})

我实际上更喜欢使用默认 URL 设置,但以下内容对我不起作用。

axios.post('download', {
responseType: 'blob',
})
.then((res) => {

关于python - 使用 Vue.js 和 Python Flask 下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58279650/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com