//解决火狐浏览器文件名中文乱码问题
String agent = request.getHeader("User-Agent");
//根据不同浏览器进行不同的编码
String realFilename = "";
if (agent.contains("MSIE")) {
// IE浏览器
realFilename = URLEncoder.encode(fileName, "utf-8");
realFilename = realFilename.replace("+", " ");
} else if (agent.contains("Firefox")) {
// 火狐浏览器,此处使用java8
realFilename = "=?utf-8?B?" + Base64.getEncoder().encodeToString(fileName.getBytes("utf-8")) + "?=";
} else {
// 其它浏览器
realFilename = URLEncoder.encode(fileName, "utf-8");
}