在jsp页面中
<%String picFile=request.getParameter("picFile");%><%@ page contentType="text/html;charset=gb2312" 
import="com.jspsmart.upload.*" %><%
SmartUpload su = new SmartUpload();
su.initialize(pageContext);
su.setContentDisposition(null);
su.downloadFile(picFile);
%>
抛出
Servlet Error: : com.ibm.servlet.engine.srt.WriteBeyondContentLengthException
at com.ibm.servlet.engine.srt.BufferedServletOutputStream.write    
          BufferedServletOutputStream.java:285)
at java.io.OutputStreamWriter.flushBuffer(OutputStreamWriter.java:236)
at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:250)
at org.apache.jasper.runtime.JspWriterImpl.flush(JspWriterImpl.java:233)
at _docdown_jsp_6._jspService(_docdown_jsp_6.java:113)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:142)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.runtime.JspServlet$JspServletWrapper.service(JspServlet.java:300)
at org.apache.jasper.runtime.JspServlet.serviceJspFile(JspServlet.java:430)
at org.apache.jasper.runtime.JspServlet.service(JspServlet.java:565)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.ibm.servlet.engine.webapp.StrictServletInstance.doService(ServletManager.java:827)
at com.ibm.servlet.engine.webapp.StrictLifecycleServlet._service
               (StrictLifecycleServlet.java:167)
at com.ibm.servlet.engine.webapp.IdleServletState.service
               (StrictLifecycleServlet.java:297)
at com.ibm.servlet.engine.webapp.StrictLifecycleServlet.service
               (StrictLifecycleServlet.java:110)
at com.ibm.servlet.engine.webapp.ServletInstance.service(ServletManager.java:472)
at com.ibm.servlet.engine.webapp.ValidServletReferenceState.dispatch
并且第一次下载没有问题,第二次下载就开始出现问题。提示内存不足文件损坏等等!
有什么解决办法么?

解决方案 »

  1.   

    建议你先使用
    String testFilePath = "c:\****.**";
    su.downloadFile(testFilePath);
    试试看~然后一步步的确定问题可能存在的地方
    祝你好运~
      

  2.   

    是不是要把:contentType="text/html;charset=gb2312"  改成:contentType="application/x-download"
      

  3.   

    好象以前有人提过,使里面使用到的一个驱动有bug,升级一个就可以了
      

  4.   

    You are using JSPs to write binary content which is generally not advised (servlets preferred). The JSPWriter will write out content when you have two scriptlet tags defined AND whatever template tags you have before, in between (carriage return, spaces, etc.), and after. So setting the content-length = size of the PDF is actually wrong since the content length would include these extra characters. If you must do it via JSP make sure there are NO trailing spaces, at the end of your JSP and your scriplet blocks are back-to-back . then your content-lenght number will be accurate.hope this helps. 
      

  5.   

    数据长度的问题,建议楼主用二进制字节流方式读写Buffer