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