愁死了!!!!
本人近日编了文件上传和下载程序,文件上传成功,但是文件下载时有些文件不能正确下载,报错java.lang.IllegalStateException: getOutputStream() has already been called for this response
org.apache.coyote.tomcat5.CoyoteResponse.getWriter(CoyoteResponse.java:599)
org.apache.coyote.tomcat5.CoyoteResponseFacade.getWriter(CoyoteResponseFacade.java:163)
org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:122)
org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:115)
org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:190)
org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:115)
org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:75)
org.apache.jsp.do_005fdownload_jsp._jspService(do_005fdownload_jsp.java:103)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
但是有些文件却能正常显示,把我急坏了!
下载源程序为:
do_download.jsp
<%@ page contentType="text/html; charset=gb2312" language="java" import="com.jspsmart.upload.*,java.util.*,java.io.*"%><%@ include file="inc/trans1.inc"%><%
   
    String str=trans(request.getParameter("str"));
// 新建一个SmartUpload对象
try
    {
SmartUpload su = new SmartUpload();
// 初始化
su.initialize(pageContext);
// 设定contentDisposition为null以禁止浏览器自动打开文件,
//保证点击链接后是下载文件。若不设定,则下载的文件扩展名为
//doc时,浏览器将自动用word打开它。扩展名为pdf时,
//浏览器将用acrobat打开。
su.setContentDisposition(null);
// 下载文件
    su.downloadFile("/upload/"+str);
   }
catch(Exception e)
{
e.printStackTrace();
}
%>
请高手帮帮忙!不胜感激!!谢谢!!

解决方案 »

  1.   

    你这个问题是因为在jsp文件中的<%%>之外出现了换行或者是空格;
    你查看一下看jsp文件的开头和结尾之外有没有空格和换行?
      

  2.   

    <%%>这之间不能有空格<%%>
      

  3.   

    com.jspsmart.upload本身好象有缺陷,经过使用发现小文件下载会出现这个问题。不是使用的问题拉,是组件本身的问题。建立一个空word文档有24k,这个大小不会出问题,但是一个txt只有几k,太小拉就会出问题
      

  4.   

    建议用FILEUPLOAD组件,比SMARTUPLOAD好用!
      

  5.   

    谢谢,应当是你们理解的对!!呵呵,我去下载一个fileupload用