上传超大文件时出现的,不知道怎么解决,如果con.setChunkedStreamingMode(1024);
但是很多服务器不支持这种上传方式,我的服务器是tomcat,文件上传组件是struts的文件上传,大家帮我看看这个问题到底怎么解决或者给个方案也行,但我不想修改服务器的代码

解决方案 »

  1.   

    这个是内存溢出吧?我在用eclipse时遇到过 一般是改下 eclipse.ini里的-Xms512m
    -Xmx512m改大一些
      

  2.   

    可以适当增加JVM的内存
    set CATALINA_OPTS=-Xms128M -Xmx256M还有可能就是程序写的不严密。修改一下程序吧。
      

  3.   

    增加一下jvm内存就Ok。。还有在选择数据类型的时候。。最好用blob(大二进制类型字段   用于将一些没有严格定义的大文件以二进制流的形势存储在数据库中
    通常   使用最多的是存储   jpg文件   和一些大文本)这种字段来储存数据
      

  4.   

    jdk中-Xms1024m -Xmx1024m -XX:MaxPermSize=128M,
    eclipse中-XX:PermSize=512M 
    -XX:MaxPermSize=512m
    eclipse中的这个试情况而定。
    最后可能是你的程序有问题
      

  5.   

    首先你要确定是不是你的上传组件造成的这个原因
        以前看到一个叫做jspSmartUpload的上传文件的控件,他的实现方式是将上传的文件以字节数组方式放入内存然后在回写到本地硬盘,当上传大文件时就会出错。当时我就傻乎乎的自己写了个上传组件,还用1个多G电影做测试。后来才发现原来上传组件是如此最多,apache写的也非常不错
      

  6.   

    不是服务器的原因吧,我用浏览器去上传就不会出现这样的问题,你说的对jspSmartUpload不支持大文件的上传。我用的是struts集成的文件上传组件和tomcat服务器
      

  7.   

    修改虚拟机的内存不是根绝的办法,而且据我测试 tomcat内存调到超过1.3G就没用了。
     期待楼主的解决方案
      

  8.   

    楼主,我现在也遇到这个问题了,请教下你是怎么解决的啊?[email protected]
      

  9.   

    这是JVM一直以来的BUG,如上面所说,扩大JVM的内存空间可以解决问题
      

  10.   

    改个毛配置啊。这种问题不要用Java解决了。用jni,其他语言写个上传的不就得了。
      

  11.   

    java.lang.OutOfMemoryError: Java heap space
    org.apache.commons.io.output.ByteArrayOutputStream.toByteArray(ByteArrayOutputStream.java:237)
    org.apache.commons.io.output.DeferredFileOutputStream.getData(DeferredFileOutputStream.java:158)
    org.apache.commons.fileupload.disk.DiskFileItem.get(DiskFileItem.java:324)
    org.apache.commons.fileupload.disk.DiskFileItem.write(DiskFileItem.java:417)
    com.bcc.fts.server.HttpRequesterServer.processFileUpload(HttpRequesterServer.java:99)
    com.bcc.fts.server.HttpRequesterServer.doPost(HttpRequesterServer.java:55)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    note The full stack trace of the root cause is available in the Apache Tomcat/6.0.36 logs.我的出现的问题如上所示,但是文件最后却能上传成功。
    具体是什么 原因 呢?
    希望大家能给出解决方法
    先谢谢了