私は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 をデコードできません: 無効な開始バイト
これを正しく行う方法に関する提案はありますか?