解决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下载文件时中文名导致的混乱问题的主要内容,如果未能解决你的问题,请参考以下文章