1 添加apache commons-io包
protected void download(String fileName, String fileExtension, InputStream stream) throws Exception {
HttpServletRequest request = getRequest();
HttpServletResponse response = getResponse();
byte[] fileBytes = IOUtils.toByteArray(stream);
String userAgent = request.getHeader("USER-AGENT");
userAgent = userAgent == null ? "" : userAgent.toUpperCase();
response.setContentType("application/x-download");
// 根据不同浏览器进行文件名编码
if (userAgent.indexOf("MSIE") != -1) {
fileName = URLEncoder.encode(fileName, "UTF-8");
}else if(userAgent.indexOf("MOZILLA") != -1){
fileName = "=?UTF-8?B?" + new BASE64Encoder().encode((fileName.getBytes("UTF-8"))) + "?=";
}
response.addHeader("Content-Disposition", "attachment;filename=" + fileName + "." + fileExtension);
response.addHeader("Content-Length", String.valueOf(fileBytes.length));
response.addHeader("Content-Transfer-Encoding", "binary");
response.setContentType("application/octet-stream");
response.getOutputStream().write(fileBytes);
}