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]

Reply via email to