当前位置:  开发笔记 > 编程语言 > 正文

如何将zip文件发送到前端以在DRF中下载

如何解决《如何将zip文件发送到前端以在DRF中下载》经验,为你挑选了1个好方法。

我正在尝试将zip文件发送到前端,以便可以在浏览器中下载它。

Zip文件中有一个文件夹,而这些文件夹中有文件:

file.zip
    - first folder
      - file1.pdf
      - file2.pdf
    - second folder
      - file3.pdf

我认为我需要先将文件转换为字节以将其作为响应发送,所以我尝试这样做:

zip_file = ZipFile(zip_file_path)

zip_byte_array = bytearray()
for filename in zip_file.namelist():
    byte_content = zip_file.read(filename)
    zip_byte_array.append(byte_content)

return Response(zip_byte_array)

追加到字节数组时,它会出现以下错误:

an integer is required

该文件夹的存档方式如下:

zip_file_path = shutil.make_archive(dir_path, 'zip', dir_path)

我怎样才能解决这个问题?



1> Jahongir Rah..:

好吧,事实证明这比我想象的要容易一些。我可以轻松做到这一点:

zip_file = open(zip_file_path, 'rb')

response = HttpResponse(zip_file, content_type='application/zip')
response['Content-Disposition'] = 'attachment; filename=name.zip'

return response

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有