gpt4 book ai didi

django - 从 Django View 中返回 zip 以供下载

转载 作者:行者123 更新时间:2023-12-03 10:57:44 33 4
gpt4 key购买 nike

我尝试在我的 Django 应用程序中下载一个 zip 文件。

我应该如何从 View 中返回它?

我尝试了下面的代码,但是我在浏览器中收到了某种警报,其中包含 zip 中的文件内容。

我究竟做错了什么?

def download_logs(request):
date = datetime.datetime.now().__str__().replace(" ", "_").split(".")[0]
os.system("df -h . > /tmp/disk_space")
response = HttpResponse(mimetype='application/zip')
response['Content-Disposition'] = 'filename=logs_%s.zip' % date

files = []
files.append("/tmp/disk_space")
buffer = StringIO()
zip = zipfile.ZipFile(buffer, "w", zipfile.ZIP_DEFLATED)
for name in files:
file = open(name, "r")
zip.writestr(name, file.read())
file.close()
zip.close()
buffer.flush()

ret_zip = buffer.getvalue()
buffer.close()
response.write(ret_zip)
return response

最佳答案

您应该告诉浏览器将响应视为文件附件。

来自 docs ,您应该执行以下操作:

>> response = HttpResponse(my_data, mimetype='application/vnd.ms-excel')
>>> response['Content-Disposition'] = 'attachment; filename=foo.xls'

关于django - 从 Django View 中返回 zip 以供下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5935014/

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