DHANGO+vue3 二进制流下载

vue3
const downloadReportfileGet = () => {
zap_downloadReportfile_get().then((response)=>{
console.log(“downloadReportfileGet”,response)
console.log(response)
const blob = new Blob([response.data])
const fileName = ‘XXX导出.xlsx’
if (‘download’ in document.createElement(‘a’)) { // 非IE下载
console.log(“downloadReportfileGet2”,response)
const elink = document.createElement(‘a’)//创建一个a标签通过a标签的点击事件区下载文件
elink.download = fileName
elink.style.display = ‘none’
elink.href = URL.createObjectURL(blob)//使用blob创建一个指向类型数组的URL
document.body.appendChild(elink)
elink.click()
URL.revokeObjectURL(elink.href) // 释放URL 对象
document.body.removeChild(elink)
} else { // IE10+下载
navigator.msSaveBlob(blob, fileName)
}

 });
 
};

django
from django.http import HttpResponse

class DownloadReportfile(View):
“”“测试报告下载”“”

def get(self, request):
    # 获取当前文件所在的目录
    current_directory = os.path.dirname(__file__)
    pathReport = os.path.join(current_directory, "zapFile", "{}.html".format("template"))
    file = open(pathReport, 'rb')  # 打开文件
    response = HttpResponse(file)
    response['content_type'] = "application/octet-stream"
    response['msg'] = "报告下载成功"
    response['Content-Disposition'] = 'attachment; filename=' + os.path.basename(pathReport)
    return response
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值