9

私は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 をデコードできません: 無効な開始バイト

これを正しく行う方法に関する提案はありますか?

4

2 に答える 2