簡體   English   中英

django打開一個zip文件供用戶下載

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM