我正在尝试使用 vue 从服务器下载文件
当我导演访问我的后端 API 时,它运行良好,我可以正常解压缩我的文件。
但是当我尝试通过axios响应下载文件时,文件无法解压,而且如果我没有设置link.download,文件名不正确。就像那样
这是我的 vue 的 api
export function packMaterials (context, thesisId, filename) {
context.$axios({
method: 'get',
headers: getAuthHeader(),
url: PACK_URL + thesisId
})
.then(function (response) {
console.log(response)
let blob = new Blob([response.data], { type: 'application/force-download' })
let link = document.createElement('a')
link.href = window.URL.createObjectURL(blob)
link.download = filename
link.click()
})
.catch(function (error) {
console.log(error)
})
}
这是我的 Django API
if os.path.exists(file_path):
# 返回file
with open(file_path, 'rb') as fh:
response = HttpResponse(fh.read(), content_type="application/force-download")
response['Content-Disposition'] = "attachment; filename={}".format(escape_uri_path(filename))
return response
这是控制台中的响应数据。
英语不是我的母语,所以如果我的描述不清楚,您可以通过 lc960127@gmail.com 与我联系,我会发送更多详细信息。
谢谢