[英]django open a zip file for user to download
Django 1.7,Python 3.4,Windows Apache 2.4.12 + wsgi
在我的程序中,我生成了一些csv文件,並將它們放在zip文件中。 我想讓用戶下載zip文件,或者強制下載(在生成文件並呈現響應之后),或者單擊按鈕(在顯示結果之后,用戶必須單擊按鈕進行下載)。
當前,一旦服務器上生成了zip文件,我就強迫他們下載。
我引用了以下鏈接,並在下面提出了我的代碼。 但這總是給我這個錯誤“字符映射編解碼器無法解碼位置80的字節0x8d:字符映射為”我試圖用utf-8和ascii進行設置,並且會給出類似的錯誤。
參考鏈接:
有人知道我為什么會收到此錯誤以及如何使其正常工作嗎?
非常感謝你!
zip_filename = time.strftime("%Y%m%d") + ".zip"
with zipfile.ZipFile(zip_filename, mode='a', compression=zipfile.ZIP_DEFLATED) as zf:
for s in sql_request:
// generate csv files
zf.write(csv_file)
// close zf
zip_file = open(zip_filename, 'r')
response = HttpResponse(zip_file, content_type='application/force-download')
response['Content-Disposition'] = 'attachment; filename="%s"' % 'foo.zip'
return response
如果您使用的是Windows,則可能需要更改open
行以包含b
標志 。
zip_file = open(zip_filename, 'rb')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.