流文件下载

在我们用浏览器浏览网页时,浏览器会帮我们自动解析它支持的文件类型。但是有时我们需要让用户去保存这些文件,而不是让浏览器直接解析。所以这时就要对服务器发给浏览器的response做一些特别的设置,让浏览器不去解析这些文件。在response中需要去设置Content-Disposition和Content-Type的值。这样浏览器就不会去解析这些数据,而弹出下载框让用户下载。

django示例

1
2
3
4
5
file=open('/home/amarsoft/下载/example.tar.gz','rb')
response =HttpResponse(file)
response['Content-Type']='application/octet-stream'
response['Content-Disposition']='attachment;filename="example.tar.gz"'
return response

但是这个文件名如果是中文发送到前端就会乱码, django可以通过url的编码方式来命名文件, 浏览器收到后能够解析成中文

1
2
3
from django.utils.encoding import escape_uri_path
 
escape_uri_path("文件名")
原文地址:https://www.cnblogs.com/wszxdzd/p/10710513.html