如何将ZipFile包装到文件包装器中? (文件异常无效)

时间:2015-08-20 11:59:13

标签: python zip

尝试在zipfile周围使用Python Filewrapper时遇到问题。当我使用包装纸时,拉链生成正常,温度"如下。但是,当我实际下载zip时,我看到了

~/Downloads $ file data.zip
data.zip: empty

实际上,无法通过解压缩打开此zip(未找到中心目录签名)。 如果我将存档包装在filewrapper而不是tempfile中,我会得到

invalid file: <zipfile.ZipFile object at 0x103e4e940>

我对Filewrapper并不熟悉,代码中的打印功能似乎表明一切都可以正常构建存档。

有人可以指出这里可能出现的问题吗?

def send_zipfile(request):
temp = tempfile.TemporaryFile()

archive = zipfile.ZipFile(temp, 'w', zipfile.ZIP_DEFLATED)
dir = getGeneratedFilesDir()
files = [f for f in listdir(dir) if isfile(join(dir, f))]

for filename in files:

    print(isfile(get_file(filename)), filename, get_file(filename).__sizeof__())
    archive.write(get_file(filename), filename)


print(archive.namelist(), archive.__sizeof__())

wrapper = FileWrapper(temp)
archive.close()
response = HttpResponse(wrapper, content_type='application/zip')
response['Content-Disposition'] = 'attachment; filename=data.zip'
response['Content-Length'] = temp.tell()
temp.seek(0)

return response

0 个答案:

没有答案