getOutputStream() 
是你这个方法已经被调用过了啊,你把代码贴出来看下吧

解决方案 »

  1.   

    <%@page language="Java" %>
    <%@page contentType="text/html;charset=GB2312" %>
    <%@page import="java.util.*"%>
    <%@page import="java.sql.*"%>
    <%@page import="historydata.*"%>
    <%@page import="com.jspsmart.upload.*"%>
    <jsp:useBean id="Query" scope="page" class="historydata.Query"/>
    <jsp:useBean id="User" scope="session" class="historydata.User"/>
    <jsp:useBean id="Organ" scope="session" class="historydata.Organ"/>
    <%@include file='../user/isLogin.jsp'%>
    <%
    String inCity_ID = request.getParameter("City_ID").trim();
    String inRptDate = request.getParameter("RptDate").trim();
    String inRpt_ID = request.getParameter("Rpt_ID").trim();
    String rptDate = ""; //报表日期
    String rpt_url = ""; //报表路径
    String rpt_url1 = ""; //报表路径if (inRpt_ID.equals("221") || inRpt_ID.equals("222") || inRpt_ID.equals("223")){
    rptDate = inRptDate;
    }else if (inRpt_ID.equals("226") || inRpt_ID.equals("232") || inRpt_ID.equals("233")){
    rptDate = Query.getLastdayOfMonth(inRptDate.substring(0,4),inRptDate.substring(4,6));
    }rpt_url = "/rptFiles/"+inCity_ID+"/"+rptDate+"/CLR"+inRpt_ID+".rpt";
    rpt_url1 = "c:/tomcat4.03/webapps/hd/rptFiles/"+inCity_ID+"/"+rptDate+"/CLR"+inRpt_ID+".rpt";
    System.out.println("rptDate=="+rptDate);
    System.out.println("rpt_url1=="+rpt_url1);try{
    // 新建一个SmartUpload对象
    SmartUpload su = new SmartUpload();
    // 初始化
    su.initialize(pageContext);
    su.setContentDisposition(null);
    java.io.File dir = new java.io.File(rpt_url1);
    if (dir.exists()){
    // 下载文件
    System.out.println("rpt_url=="+rpt_url);
    su.downloadFile(rpt_url);
    System.out.println("download success!");
    }else{
    %>
    <script language=javascript>
    alert("没有符合的报表文件!");
    window.history.back();
    </script>
    <%
    }
    dir = null;
    }catch(Exception e){
    e.printStackTrace();
    }
    %>
      

  2.   

    你下载了文件之后就没有再采取清除对象的措施了,看看API文档里有没有把strea对象关闭的方法,比如说outputStream.close()之类的方法啊
      

  3.   

    http://community.csdn.net/Expert/topic/3016/3016712.xml?temp=.4753534
      

  4.   

    解决了,在前面加上
    java.io.FileOutputStream fin = new java.io.FileOutputStream(dir);最后
    fin.flush();