解决django下载文件时中文名导致的混乱问题

Posted Jason_WangYing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决django下载文件时中文名导致的混乱问题相关的知识,希望对你有一定的参考价值。

刚刚写好的下载文件测试时用的英文没有问题,结果提交后别人用了后说不能用

我看了下就是中文编码造成的,解决办法也很简单

 response['Content-Disposition'] = 'attachment;filename="%s"' % filename 

改成

response['Content-Disposition'] = "attachment; filename*=utf-8''{}".format(escape_uri_path(filename)) return

 完整代码

def download(request):
    filename = request.GET.get('file')
    try:
        filepath = os.path.join('static/file_upload/', filename)
        fp = open(filepath, 'rb')
        response = StreamingHttpResponse(fp)
        response['Content-Type'] = 'application/octet-stream'
        response['Content-Disposition'] = "attachment; filename*=utf-8''{}".format(escape_uri_path(filename))
        return response
        fp.close()
    except Exception as ex:
        print(ex)
        return HttpResponse('参数错误,请联系管理员')

以上是关于解决django下载文件时中文名导致的混乱问题的主要内容,如果未能解决你的问题,请参考以下文章

Django下载中文名文件:

解决WebUploader断点续传md5混乱导致的文件合并错误问题

vim黏贴代码格式混乱的解决方法

ubuntu解压时中文出现乱码

flask下载文件中文名乱码终极解决方案python3版本

hive在CLI下日志输出过多,导致很混乱