ssh框架下载本地文件
/** * 下载模板 */ public String download(){ try{ // 下载本地文件 //File file = new File(Constant.OPLOAD_PAHT,fileName); // 读到流中 String realPath=this.getServletRequest().getSession().getServletContext().getRealPath("/") + "WEB-INF" + File.separator+"ybpldr.xls"; InputStream inStream = new FileInputStream(realPath);// 文件的存放路径 this.getServletResponse().reset(); this.getServletResponse().setContentType("bin"); if ("FF".equals(getBrowser(this.getServletRequest() ))) { // 针对火狐浏览器处理方式不一样了 String filenamedisplay = new String("医保数据批量导入.xls".getBytes("UTF-8"), "iso-8859-1") + ".xls"; this.getServletResponse().setHeader("Content-Disposition", "attachment;fileName="+filenamedisplay); } else{ // 设置输出的格式 this.getServletResponse().setHeader("Content-Type","application/vnd.ms-excel;charset=UTF-8"); //response.setHeader("Content-Disposition", "attachment;fileName=" + jfdwmc+".xls"); this.getServletResponse().setHeader("Content-Disposition", "attachment;fileName=" + java.net.URLEncoder.encode("医保数据批量导入.xls", "UTF-8")); } //this.getServletResponse().addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("医保数据批量导入.xls","UTF-8")); // 循环取出流中的数据 byte[] b = new byte[100]; int len; while ((len = inStream.read(b)) > 0) this.getServletResponse().getOutputStream().write(b, 0, len); inStream.close(); } catch (IOException e) { e.printStackTrace(); } return null; }
// 以下为服务器端判断客户端浏览器类型的方法 private String getBrowser(HttpServletRequest request) { String UserAgent = request.getHeader("USER-AGENT").toLowerCase(); if (UserAgent != null) { if (UserAgent.indexOf("msie") >= 0) return "IE"; if (UserAgent.indexOf("firefox") >= 0) return "FF"; if (UserAgent.indexOf("safari") >= 0) return "SF"; } return null; }