Thanks.
-- James Mitchell Software Engineer / Open Source Evangelist EdgeTech, Inc. 678.910.8017 AIM: jmitchtx
----- Original Message ----- From: "Dakota Jack" <[EMAIL PROTECTED]>
To: "Struts Developers List" <dev@struts.apache.org>
Sent: Sunday, March 06, 2005 1:03 AM
Subject: Re: [Apache Struts Wiki] Updated: StrutsUpload
Perhaps I should have added, James, that I previewed all the submissions many times before saving them.
On Sun, 6 Mar 2005 00:00:39 -0500, James Mitchell <[EMAIL PROTECTED]> wrote:Not trying to be rude here, but you can help us all out by using the "Preview" instead of the "Save" when making multiple changes. That helps keep the noise down ;)
-- James Mitchell Software Engineer / Open Source Evangelist EdgeTech, Inc. 678.910.8017 AIM: jmitchtx
----- Original Message ----- From: <dev@struts.apache.org> To: <dev@struts.apache.org> Sent: Saturday, March 05, 2005 6:30 PM Subject: [Apache Struts Wiki] Updated: StrutsUpload
Date: 2005-03-05T15:30:46 Editor: DakotaJack Wiki: Apache Struts Wiki Page: StrutsUpload URL: http://wiki.apache.org/struts/StrutsUpload
no comment
Change Log:
------------------------------------------------------------------------------ @@ -1,5 +1,50 @@ == Overview ==
+Utilizing the sort of structure suggested for Struts upload below allows us
to have an !ActionUpload class as follows:
+
+(This is actual code used in a working application online.)
+
+{{{
+public class UploadAction
+ extends Action {
+ public ActionForward execute(ActionMapping mapping,
+ ActionForm form,
+ HttpServletRequest req,
+ HttpServletResponse res)
+ throws Exception {
+ HttpSession sess = req.getSession();
+ Upload upload =
(Upload)sess.getAttribute(UploadConstant.UPLOAD);
+
+ if(upload == null) {
+ upload = new Upload();
+ sess.setAttribute(UploadConstant.UPLOAD,upload);
+ }
+
+ if(upload.isMultipart(req)) {
+ Monitor progress =
(UploadMonitorProgress)sess.getAttribute(UploadConstant.MONITOR);
+
+ if(progress == null) {
+ progress = new UploadMonitorProgress();
+ sess.setAttribute(UploadConstant.MONITOR,progress);
+ }
+
+ List monitors = Collections.synchronizedList(new LinkedList());
+ monitors.add(progress);
+ String userStore = LoadFileUtil.getUploadPath(user.getId());
+
+ upload.setStore(UploadConstant.DIR,userStore);
+ upload.setStoreTmpDir(LoadFileUtil.UPLOAD_TEMP_FILES);
+
upload.process(req,monitors,UploadConstant.DEFAULT_ENCODING,UploadConstant.MAX_UPLOADED_FILE_SIZE);
+ upload.store();
+
+
sess.setAttribute(UploadConstant.REPORT,UploadReport.getReport(upload));
+ }
+
+ return new ActionForward(...);;
+ }
+}
+}}}
+
The point of this presentation is not the classes given. The point is that
I am would hope that the committers working on the Struts multipart
processing would make some attempt to provide a basis for applications other
than the Struts upload package. These classes are not meant to be that
basis, other than the so-called "Framework Code" given below. If the code
given so far is not sufficient to get a response other than the usual
indifference, I will just go my own way.
This is about Struts v1.2.6 and forward multipart requests. The first
seven classes/interfaces are suggested as a basis for allowing Struts
users/developers to implement their own file upload applications. The
object of suggesting these classes is to make the use of !ActionForm
available to users/developers who want to do something more than the present
default file upload application packaged with Struts allows but maintaining
backward compatibility.
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
-- "You can lead a horse to water but you cannot make it float on its back." ~Dakota Jack~
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]