我写了一个允许用户下载文件的代码。这是代码:
def download_file(request, ref):
filepath = "/home/jedema/code_"+ref+".txt"
filename = os.path.basename(filepath)
final_filename = "code.txt"
return serve(request, filename, os.path.dirname(filepath))
我想定义用户将下载的文件名。目前,下载文件的名称是我的域名后面的URL。
您知道如何定义用户下载的文件名吗?
答案 0 :(得分:2)
您需要在回复中设置Content-Disposition
标头。首先,您不应使用serve()
视图来传递文件,因为只有设置了DEBUG = True
,它才有效。
看看Django Docs类似下面的内容应该做的诀窍
def download_file(request, ref):
filepath = "/home/jedema/code_"+ref+".txt"
filename = os.path.basename(filepath)
final_filename = "code.txt"
with open(filepath) as f:
response = HttpResponse(f.read(), content_type='text/plain')
response['Content-Disposition'] = 'attachment; filename="%s"' % final_filename
return response
我没有测试过,但它应该是正确方向的暗示