Django下载文件设置正确名称

时间:2018-09-05 12:24:55

标签: django

现在我使用以下功能下载文件:

def download_xlsx(request):
    user = request.user
    file_name = request.GET['file_name']
    file_path='main_app/static/xlsx/' + str(user.id) + '/' + file_name
    if os.path.exists(file_path):
        with open(file_path, 'rb') as fh:
            response = HttpResponse(fh.read(), content_type="application/vnd.ms-excel")
            response['Content-Disposition'] = "inline; filename=%s" % file_name
            return response

使用以下网址http://127.0.0.1:8000/download_xlsx?file_name=test.xlsx

我下载了名为“ download_xlsx”的文件

我试图写这样的东西:

response['Content-Disposition'] = "inline; filename='+ file_name

但是没有帮助。 如何将文件重命名为file_name var? UPD:非英文file_names似乎是问题所在。但是仍然不知道如何处理

1 个答案:

答案 0 :(得分:0)

像这样工作(问题出在编码中)

response['Content-Disposition'] = "inline; filename=%s" % file_name.encode('utf-8')