ssh框架下载本地文件

来源:互联网 发布:淘宝卖东西流程 编辑:程序博客网 时间:2024/06/06 01:29


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;      }