直接上部分代码:
String zipFileName = fileNameRoot + System.currentTimeMillis() + ".zip";// 文件名+时间戳+ .zip
//得请求头中的User-Agent
String agent = httpServletRequest.getHeader("User-Agent");
// 根据不同的客户端进行不同的编码
String filenameEncoder = "";
if (agent.contains("MSIE")) {
// IE浏览器
filenameEncoder = URLEncoder.encode(zipFileName, "utf-8");
filenameEncoder = filenameEncoder.replace("+", " ");
} else if (agent.contains("Firefox")) {
// 火狐浏览器
BASE64Encoder base64Encoder = new BASE64Encoder();
filenameEncoder = "=?utf-8?B?" + base64Encoder.encode(zipFileName.getBytes("utf-8")) + "?=";
} else {
// 其它浏览器
filenameEncoder = URLEncoder.encode(zipFileName, "utf-8");
}
httpServletResponse.setContentType("application/zip");
// 告诉客户端该文件不是直接解析,而是以附件形式打开(下载)
httpServletResponse.setHeader("Content-Disposition", "attachment;filename=" + filenameEncoder);