Date: 2005-03-01T21:57:51
   Editor: DakotaJack
   Wiki: Apache Struts Wiki
   Page: StrutsUpload
   URL: http://wiki.apache.org/struts/StrutsUpload

   no comment

Change Log:

------------------------------------------------------------------------------
@@ -1,4 +1,8 @@
 ##language:en
+== Introduction ==
+
+I have tried to discuss ways to make life easy for everyone in the Struts 
upload area, i.e. for the default application and for alternative applications. 
 As things stand, the default application is fairly wedded deep into the 
framework itself, which, I think, is unnecessary and which, I think, stifles 
chances to explore other options.  There is nothing wrong, of course, with the 
Struts upload application and this is not a criticism.  I would, myself, like 
to be able to use the ActionForm with a more "detailed" or more "sophisticated" 
application.  If we can get by that hurdle, I would be happy to donate the code 
to Struts, if anyone wants it.  Getting by that hurdle is not made easier by my 
apparent difficulties communicating what I am trying to do to the committers.  
They seem to think I am asking someone else to do something.  I am not.  
Anyway, if anyone has time to read all the following, that would be best.  If 
someone does not have the time, let me say that I am beginning by suggesting a 
different approach to the present MultipartRequestHandler and 
MultipartRequestWrapper, as well as to where wrapper and handler classes are 
introduced into the framework.  I have tried to build a wrapper (facade) and a 
handler which will be agnostic towards any particular solutions, unlike the 
present wrapper and handler.  The wrapper/facade is not sufficient to pass to 
the Action as the request.  It is not even a wrapper in that sense.  Nor, I 
think, would that be desireable.  However, if one wants to do that, I will 
provide a true wrapper connected to the code by implementing the facade methods 
in a wrapper in addition to the regular HttpServletRequest and ServletRequest 
methods.  On to the code, then.  Any questions would be welcome: [EMAIL 
PROTECTED]
+
 == Struts Multipart Processing in Struts v1.2.6 for Upload Applications ==
 
 The present code in Struts v1.2.6 and before is tied to the "default" or 
"existing" upload application supplied in the Struts jar file.  By "tied" I 
mean that the code is coupled to that application such that it unnecessarily 
impedes the development of competing or alternative implementations.  This is 
not a criticism of the default application.  Rather, it is a desire to decouple 
a particular implementation which is not a very sophisticated upload 
application, from the framework.  This is not a hard thing to do, and hopefully 
this wiki page will start a discussion of how that might be achieved, if 
desireable.  As things stand, people regularly have to build around the 
multipart processing in Struts rather than benefit from it.  What is proposed 
here hopefully would provide a basis for keeping what is good about the present 
application while allowing other alternatives to be used too.
@@ -368,7 +372,7 @@
     ufiFactory.setMonitors(monitors);
     ufiFactory.setCustom(req.getContentLength());
 
-    CommonsDiskFileUpload cdfu = new CommonsDiskFileUpload();
+    DiskFileUpload cdfu = new DiskFileUpload();
 
     cdfu.setFileItemFactory(ufiFactory);
     cdfu.setSizeMax(maxFileSize);
@@ -383,14 +387,14 @@
 
     try {
       list = cdfu.parseRequest(req);
-    } catch(CommonsFileUploadException cfue) {
+    } catch(FileUploadException cfue) {
       throw new IOException(cfue.getMessage());
     }
 
     Object obj = null;
 
     for(Iterator iterator = list.iterator(); iterator.hasNext();) {
-      CommonsFileItem cfi       = (CommonsFileItem)iterator.next();
+      FileItem cfi       = (FileItem)iterator.next();
       String          fieldName = cfi.getFieldName();
 
       if(cfi.isFormField()) {

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to