HttpServletResponse文件下载——工作记录
文章目录
前言
在利用HttpServletResponse响应进行文件下载时,遇到不少坑,为了日后工作方便找回,在此记录。
一、设置什么Response头的什么属性可以设置下载?
1、Content-Type : application/octet-stream
该属性可以让文件直接下载,但是无法设置文件名和后缀
2、Content-Disposition : attachment;filename=xxx.pdf
可让文件下载,而且可以自己设置文件名和后缀,但是如果直接把文件名拼接在filename的值的话,浏览器下载的文件名可能出现乱码。如下解决。
二、解决文件名下载乱码
将待拼接的文件名进行如下操作后,再拼接到filename的值即可。
cName = new String(cName.getBytes(),“ISO-8859-1”);
最后把cName 拼接到filename的值即可。
其中getBytes()默认采用的字符集是你jvm运行环境的字符集,如果你使用tomcat,那么就是使用tomcat的字符集,目前本人SpringBoot的内置tomcat默认字符集就是UTF-8。