为了账号安全,请及时绑定邮箱和手机立即绑定

生成文件以使用Django下载

生成文件以使用Django下载

慕妹3146593 2019-11-23 10:58:49
是否可以制作一个zip存档并提供下载,但仍不将文件保存到硬盘驱动器?
查看完整描述

3 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

您将更高兴创建一个临时文件。这样可以节省大量内存。当您同时有一个或两个以上的用户时,您会发现节省内存非常重要。


但是,您可以写入StringIO对象。


>>> import zipfile

>>> import StringIO

>>> buffer= StringIO.StringIO()

>>> z= zipfile.ZipFile( buffer, "w" )

>>> z.write( "idletest" )

>>> z.close()

>>> len(buffer.getvalue())

778

“缓冲区”对象类似于具有778字节ZIP存档的文件。


查看完整回答
反对 回复 2019-11-23
?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

为什么不制作tar文件呢?像这样:


def downloadLogs(req, dir):

    response = HttpResponse(content_type='application/x-gzip')

    response['Content-Disposition'] = 'attachment; filename=download.tar.gz'

    tarred = tarfile.open(fileobj=response, mode='w:gz')

    tarred.add(dir)

    tarred.close()


    return response


查看完整回答
反对 回复 2019-11-23
  • 3 回答
  • 0 关注
  • 690 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信