要分浏览器处理,IE浏览器和其余浏览器(谷歌,火狐等等)。web
HttpServletResponse response = this.getResponse();
HttpServletRequest request = this.getRequest();
response.reset();
response.setContentType("application/x-msdownload");
response.setHeader("Content-Type", "application/octet-stream");浏览器
String agent = request.getHeader("User-Agent").toUpperCase(); //得到浏览器信息并转换为大写 if (agent.indexOf("MSIE") > 0 || (agent.indexOf("GECKO")>0 && agent.indexOf("RV:11")>0)) { //IE浏览器和Edge浏览器 fileName = URLEncoder.encode(fileName, "UTF-8"); } else { //其余浏览器 fileName = new String(fileName.getBytes("UTF-8"), "iso-8859-1"); }
response.setHeader("content-disposition", "attachment;filename=" + fileName);
public static void main(String[] args) { String agent=request.getHeader("User-Agent").toLowerCase(); System.out.println(agent); System.out.println("浏览器版本:"+getBrowserName(agent)); } /** * 获取浏览器版本信息 * @Title: getBrowserName * @data:2015-1-12下午05:08:49 * @author:wolf * * @param agent * @return */ public String getBrowserName(String agent) { if(agent.indexOf("msie 7")>0){ return "ie7"; }else if(agent.indexOf("msie 8")>0){ return "ie8"; }else if(agent.indexOf("msie 9")>0){ return "ie9"; }else if(agent.indexOf("msie 10")>0){ return "ie10"; }else if(agent.indexOf("msie")>0){ return "ie"; }else if(agent.indexOf("opera")>0){ return "opera"; }else if(agent.indexOf("opera")>0){ return "opera"; }else if(agent.indexOf("firefox")>0){ return "firefox"; }else if(agent.indexOf("webkit")>0){ return "webkit"; }else if(agent.indexOf("gecko")>0 && agent.indexOf("rv:11")>0){ return "ie11"; }else{ return "Others"; } }