【发布时间】:2020-01-27 06:13:36
【问题描述】:
我正在尝试创建一个网页,其中包含一个表格,该表格中的一列下载驻留在我的计算机中的特定文件。应该下载的文件是基于该行的 ID 号。(ID 是我表中的一列)
例如。如果用户单击第 3 行中的 URL,则应下载本地文件中名为“3.zip”的文件。
我在我的 HTML 模板文件中尝试了 <a href="<path>" download>,但我意识到在 Django 中方法不同。然后我使用 HTTPResponse 作为附件方法。
这是我的 Views.py 代码供下载。
def download_file(request):
fl_path = '/home/harish/Desktop/cvision/users_output_files/5/5.zip'
filename = '5.zip'
with open(fl_path, 'r') as zip_file:
response = HttpResponse(zip_file, content_type='application/force-download')
response['Content-Disposition'] = 'attachment; filename="%s"'%filename
return response
网址.py
urlpatterns = [
path('',views.homepage),
path('add',views.datapage),
path('newdata',views.newdata),
path('newuser',views.newuser),
path('download_file/',views.download_file)
]
所以,当我转到路径 http://127.0.0.1:8000/download_file 时,应该会下载该文件。但相反,我得到了一个错误。
'utf-8' codec can't decode byte 0xeb in position 10: invalid continuation byte
如果我们忽略编码错误,如何解决根据该行的 ID 从本地文件夹下载特定文件的问题?
【问题讨论】: