[ https://issues.apache.org/jira/browse/WW-3526?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Lukasz Lenart updated WW-3526: ------------------------------ Fix Version/s: 6.8.0 (was: 6.7.1) > 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: 6.1.1 > Environment: N/A > Reporter: Bob Glamm > Priority: Minor > Fix For: 6.8.0 > > 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 was sent by Atlassian Jira (v8.20.10#820010)