Wes,

Struts2 framework uses JakartaMultiPartRequest.java, MultiPartRequest.java, 
MultiPartRequestWrapper.java to process multipart/form-data request and uses 
FileUploadInterceptor.java to assemble a File object.  

At Dispatcher.java line 760 about. the code wraps  a multipart/form-data 
request. 

 request = new MultiPartRequestWrapper(mpr, request, 
getSaveDir(servletContext));

It leads the leak extension for processing of multipart request. for examples, 
1, parsing multipart request into a object contains data of file, it means the 
data of file store in memory, not on file system.
2, sometime user needs java.io.File in Action, sometime user needs StreamData, 
struts2 framework should have the ability that provide the user switch easiely.

regarding of the requirements, I think the framework may have a factory to 
create MultiPartRequestWrapper object via  configuration specified. or X-work 
instance  MultiPartRequestWrapper object via configuration.

Thus, struts2 framework can support varies file upload components,  such ASF 
commons file upload, fast upload and customers upload components. the feature 
gives a right that user can select to indeed.

Best wishes,
Link Qian


On Nov 12, 2012, at 11:13 PM, Wes Wannemacher <w...@wantii.com> wrote:

> Another approach would be for you to take a look at our plugin API and
> build a plugin for integrating your framework into a Struts 2 web-app.
> 
> -Wes
> 
> On Mon, Nov 12, 2012 at 7:39 AM, Fastupload <fastupl...@outlook.com> wrote:
> 
>> To who maybe concern,
>> 
>> I just notice struts2 framework parses multipart/form-data requesting into
>> a temporary file, and marshal a java.io.File object for struts2 action
>> regarding file input of multipart-form data request. also the framework
>> parses all files in request and then make a filter rule in
>> FileUploadInterceptor.java. And finally, framework clean temporary files
>> after action is invoked.
>> 
>> Following the processing, there are three disadvantages:
>> 1, use temporary file makes low performance
>> 2, redundancy operation --  clean up temporary file
>> 3, struts action only supports java.io.File class to represent a uploading
>> file in multipart/form-data request.
>> 4, filter all file after parsing has been done, the action may be prior to
>> interceptors.
>> 
>> Could you guys have a look into *fastupload* open source project in
>> https://sourceforge.net/projects/fastupload. Right now it is the fastest
>> form-based upload parsing component in java area. it makes a significant
>> performance improvement and advance features, such as,
>> 1, 2.x faster than Apache Commons FileUpload in stream method. certainly,
>> it's 5.x faster than apache commons file upload in disk method.
>> 2, filter boundaries with determining MIME and file name in advance.
>> 
>> 
>> 
>> In fastupload-0.4.7 version, it has released some codes that work with
>> struts2 framework, enable parsing files with it in struts2 framework.  To
>> improve features of struts2 multipart/form-data request, Could you consider
>> to integrate *fastupload* source code into struts2 framework.  incurring
>> struts2 supports both *fastupload* and ASF commons file upload?
>> 
>> best wishes,
>> Link Qian
>> 
>> 
>> 
>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscr...@struts.apache.org
>> For additional commands, e-mail: dev-h...@struts.apache.org
>> 
>> 
> 
> 
> -- 
> Wes Wannemacher
> 
> Head Engineer, WanTii, Inc.
> Need Training? Struts, Spring, Maven, Tomcat...
> Ask me for a quote!


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@struts.apache.org
For additional commands, e-mail: dev-h...@struts.apache.org

Reply via email to