我浏览了 django 文档,发现这段代码允许您将文件呈现为附件
dl = loader.get_template('files/foo.zip')
context = RequestContext(request)
response = HttpResponse(dl.render(context), content_type = 'application/force-download')
response['Content-Disposition'] = 'attachment; filename="%s"' % 'foo.zip'
return response
foo.zip 文件是使用 pythons zipfile.ZipFile().writestr 方法创建的
zip = zipfile.ZipFile('foo.zip', 'a', zipfile.ZIP_DEFLATED)
zipinfo = zipfile.ZipInfo('helloworld.txt', date_time=time.localtime(time.time()))
zipinfo.create_system = 1
zip.writestr(zipinfo, StringIO.StringIO('helloworld').getvalue())
zip.close()
但是当我尝试上面的代码来渲染文件时,我收到了这个错误
“utf8”编解码器无法解码位置 10 中的字节 0x89:无效的起始字节
关于如何正确执行此操作的任何建议?