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

django示例

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
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( "文件名" )
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄