1. 程式人生 > 其它 >django讀取檔案返回前端下載

django讀取檔案返回前端下載

技術標籤:django

file_name = 'excel.xlsx'

response = FileResponse(open('templates/%s' % file_name, 'rb'))
response['Content-Type'] = 'text/xls'
response['Content-Disposition'] = 'attachment;filename="%s"' % file_name
return response

注意:開啟的檔案將自動關閉,因此請勿使用上下文管理器(with open)開啟它。當然也無需 close

在不知道會自動關閉前,手動關閉了,導致檔案無法下載,即使將檔案內容讀取出來寫入byteio中,使用python manage啟動專案可以下載,但是當配合nginx時就無法下載了。nginx會報錯

upstream prematurely closed connection while reading upstream