Django下载文件设置正确的名称

问题描述 投票:0回答:1

现在我使用以下函数下载文件:

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的问题。但还是不知道怎么处理它

django
1个回答
0
投票

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

response['Content-Disposition'] = "inline; filename=%s" % file_name.encode('utf-8')
© www.soinside.com 2019 - 2024. All rights reserved.