各位大哥们,帮忙想个问题吗,就是tomcat目录下面下载excel文件不用流的方法怎么下载啊?我用了reponse.senddirect(aa.xls)这个方法不行,你知道为什么了,请大家帮忙哈。谢谢!

解决方案 »

  1.   

    public ActionForward downAction(ActionMapping mapping, ActionForm form,
        HttpServletRequest request, HttpServletResponse response) throws IOException {
       java.io.OutputStream o = response.getOutputStream();
       byte b[] = new byte[500];
       java.io.File fileLoad = new java.io.File(request.getRealPath("/WEB-INF/"+"/f.xls"));
       //System.out.println(fileLoad.getPath());
       response.reset();   response.setContentType("application/vnd.ms-excel");   response.setHeader("content-disposition",
         "attachment; filename=text.xls");
       long fileLength = fileLoad.length();
       String length1 = String.valueOf(fileLength);
       response.setHeader("Content_Length", length1);
       java.io.FileInputStream in = new java.io.FileInputStream(fileLoad);
       int n;
       while ((n = in.read(b)) != -1) {
        o.write(b, 0, n);
       }   in.close();
       o.close();
      
       return null;
    }
      

  2.   

    <%
        java.io.OutputStream o = response.getOutputStream();
        byte b[] = new byte[500];
        java.io.File fileLoad = new java.io.File(request.getRealPath("/WEB-INF/"+"/f.xls"));
        //System.out.println(fileLoad.getPath());
        response.reset();    response.setContentType("application/vnd.ms-excel");    response.setHeader("content-disposition",
          "attachment; filename=text.xls");
        long fileLength = fileLoad.length();
        String length1 = String.valueOf(fileLength);
        response.setHeader("Content_Length", length1);
        java.io.FileInputStream in = new java.io.FileInputStream(fileLoad);
        int n;
        while ((n = in.read(b)) != -1) {
         o.write(b, 0, n);
        }    in.close();
       out.clear();
        out = pageContext.pushBody();   %>