0

I am trying to upload a huge file size[more than 5 gb] using struts1.2form file and apache.commons.fileupload 1.0. I saw that maximum limit for file upload in struts1 is 256M. Is there any way to change this? I am getting the below exception.

 org.apache.commons.fileupload.FileUploadBase$UnknownSizeException: the request was rejected because its size is unknown
        at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:305)
        at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:268)
        at org.apache.struts.upload.CommonsMultipartRequestHandler.handleRequest(CommonsMultipartRequestHandler.java:182)
        at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:389)
            at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:191)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:643)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:745) 

By default file size limit is 250MB. I have increased to 350MB. It works fine. After that i have increased it to 10G and got the below exception. Is it possible to upload a huge file using struts1.2? is there any other way to upload huge file?

Shriram
  • 4,343
  • 8
  • 37
  • 64

1 Answers1

0

configure the maximum limit in struts controller controller processorClass="your class" nocache="true" locale="true" contentType="text/html;charset=UTF-8" **maxFileSize="15G"/**

When you are using apache.commons.fileuploa-1.1 there is a constraint that FileUpload refuses parsing requests of unknown length. In the succeeding version stream has been introduced to overcome the size issue. Below issues were reported in apache.commons.fileupload in 1.2 & 1.3 1. After uploading, temp file is not removed 2. Input stream is not closed which leads to memleak.

REF: refuses parsing request of unknown lenght Memleak when stream is not closed. Memleak

Hope it helps....

Shriram
  • 4,343
  • 8
  • 37
  • 64