[
https://issues.apache.org/jira/browse/WW-3526?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12927914#action_12927914
]
Wes Wannemacher commented on WW-3526:
-------------------------------------
There is a plugin in the sandbox that I'd like for you to take a look at...
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-fileupload-plugin/
That's the viewvc link to it. If you are interested in helping out, then let's
start from here add patches.
> Augment JakartaMultiPartRequest to include optional progress listener
> ---------------------------------------------------------------------
>
> Key: WW-3526
> URL: https://issues.apache.org/jira/browse/WW-3526
> Project: Struts 2
> Issue Type: New Feature
> Components: Dispatch Filter
> Affects Versions: Future
> Environment: N/A
> Reporter: Bob Glamm
> Priority: Minor
> Fix For: Future
>
> Attachments: upload-listener.tar.gz
>
>
> Original concept from David Casserly: see
> http://www.devedup.com/ajaxfileupload/
> The basic idea is to augment JakartaMultiPartRequest to allow users to
> specify a file upload progress listener (see Commons FileUpload
> ServletFileUpload.setProgressListener()). The original concept by Casserly
> references a specific ProgressMonitor class that implements FileUpload's
> ProgressListener interface. I'd propose an alternate solution: allow the
> user to configure the fully-qualified name of an optional listener class via
> @Inject("struts.multipart.monitor"), then:
> o require the listener class to also implement an interface that specifies
> public void abort(); as its only method;
> o in JakartaMultiPartRequest.parseRequest(), attempting to instantiate the
> specified listener class via Class.forName().newInstance();
> o store the instantiated listener in the session, as per Casserly's
> example;
> o in JakartaMultiPartRequest.parse(), in the catch(FileUploadException)
> block, calling the abort() method on the listener class if it is in the
> session.
> Users can then implement an action that retrieves the upload status (via AJAX
> or some other mechanism) by retrieving their listener object from the session
> (as per Casserly's example.) AJAX retrieval allows implementation of file
> upload progress bars, a la GMail's attachment upload mechanism.
> One possible issue I see with this is: what happens if multiple file upload
> requests happen simultaneously for a user session?
> I have a partial implementation but I'm not familiar with the Struts
> development process or philosophies, so I'm throwing this out there for
> review. If there are better ways to do this, let me know. I can
> (eventually) provide a patch to 2.2.1 or HEAD with a little assistance, I
> think.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.