生成文件以使用Django下载

是否可以制作一个zip存档并提供下载,但仍不将文件保存到硬盘驱动器?



慕妹3146593
浏览 696回答 3
3回答

幕布斯6054654

您将更高兴创建一个临时文件。这样可以节省大量内存。当您同时有一个或两个以上的用户时,您会发现节省内存非常重要。但是,您可以写入StringIO对象。>>> import zipfile>>> import StringIO>>> buffer= StringIO.StringIO()>>> z= zipfile.ZipFile( buffer, "w" )>>> z.write( "idletest" )>>> z.close()>>> len(buffer.getvalue())778“缓冲区”对象类似于具有778字节ZIP存档的文件。

翻过高山走不出你

为什么不制作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
打开App,查看更多内容
随时随地看视频慕课网APP