我是一个提交页面,提交到一个SERVLET,然后输出下载
.......
fileName=fileName+".xls";
response.setContentType("application/file");
response.setHeader("Content-Disposition","filename="+fileName);
ServletOutputStream out = response.getOutputStream();
wb.write(out); 
        out.close();我以前这样设置过的啊,都可以!现在却直接是在浏览器里打开,我把fileName改个后缀
.xls1就OK了,是浏览器问题还是BUG问题,怎么解决,请教老鸟!

解决方案 »

  1.   

    直接在jsp页面里调用,然后把out传给poi的类,这样poi就可以write(out)了。
    核心思想就是poi直接输出到jsp页面的out流中。
      

  2.   

    我以前是这样用的
    你参考一下看看<%@ page import="java.util.*,java.io.*,java.lang.*"%>
    <% String queryName =(String)request.getAttribute("queryName"); String mimeType =(String)request.getAttribute("mimeType");
             request.removeAttribute("mimeType");
      if(mimeType==null || mimeType.equals(""))  mimeType="APPLICATION/VND.MS-EXCEL";
    queryName = new String(queryName.getBytes("gb2312"), "ISO8859-1");
      try {
            response.setContentType(mimeType);
            response.setHeader("Content-Disposition","attachment; filename=\""+ queryName+ "\"");
            
            //stream out file
            ByteArrayOutputStream outputStream =(ByteArrayOutputStream)request.getAttribute("fileStream");
            ServletOutputStream fOutputStream = response.getOutputStream();
            fOutputStream.write(outputStream.toByteArray());
            outputStream.close();
            fOutputStream.close();
      } catch (Exception exp){
         System.out.println("Exception: "+exp.getMessage());
      }%> 
    <jsp:forward page="blank.jsp"/>