Title: [waffle-scm] [485] trunk/examples/simple-example/src/main/webapp: WAFFLE-44: Refactored RequestFileUploader to only return as files the non-form field FileItems.
Revision
485
Author
mauro
Date
2007-12-15 05:32:26 -0600 (Sat, 15 Dec 2007)

Log Message

WAFFLE-44:  Refactored RequestFileUploader to only return as files the non-form field FileItems.
Removed stop() cleanup functionality, now by default handled by FileUploader's cleanup mechanisms.

Modified Paths

Diff

Modified: trunk/examples/simple-example/src/main/java/org/codehaus/waffle/example/simple/UploadController.java (484 => 485)

--- trunk/examples/simple-example/src/main/java/org/codehaus/waffle/example/simple/UploadController.java	2007-12-15 09:29:25 UTC (rev 484)
+++ trunk/examples/simple-example/src/main/java/org/codehaus/waffle/example/simple/UploadController.java	2007-12-15 11:32:26 UTC (rev 485)
@@ -13,6 +13,7 @@
     private FileUploader uploader;
     private Collection<String> errors;
     private List<FileItem> files;
+    private String comment;
     
     public UploadController(FileUploader uploader) {
         this.uploader = uploader;
@@ -21,7 +22,7 @@
     @ActionMethod(asDefault=true)
     @PRG(false) // PRG needs to be disabled to allow request-scope content to be accessible in referring view
     public void upload(){ 
-        files = uploader.getFileItems();
+        files = uploader.getFiles();
         errors = uploader.getErrors();        
     }
 
@@ -33,4 +34,12 @@
         return files;
     }
     
+    public String getComment(){
+        return comment;
+    }
+
+    public void setComment(String comment) {
+        this.comment = comment;
+    }
+    
 }

Modified: trunk/examples/simple-example/src/main/webapp/upload.jspx (484 => 485)

--- trunk/examples/simple-example/src/main/webapp/upload.jspx	2007-12-15 09:29:25 UTC (rev 484)
+++ trunk/examples/simple-example/src/main/webapp/upload.jspx	2007-12-15 11:32:26 UTC (rev 485)
@@ -25,9 +25,9 @@
     <h3>Waffle file upload</h3>
 
     <input type="file" name="importFile"/>
+    <br/>
     
     <a href="" File</a>
-
     <br/>
 
      <table>

Modified: trunk/waffle-core/src/main/java/org/codehaus/waffle/io/FileUploader.java (484 => 485)

--- trunk/waffle-core/src/main/java/org/codehaus/waffle/io/FileUploader.java	2007-12-15 09:29:25 UTC (rev 484)
+++ trunk/waffle-core/src/main/java/org/codehaus/waffle/io/FileUploader.java	2007-12-15 11:32:26 UTC (rev 485)
@@ -22,11 +22,11 @@
 public interface FileUploader {
 
     /**
-     * Returns the FileItems for uploaded files
+     * Returns the uploaded files
      * 
-     * @return A List of FileItems
+     * @return A List of FileItems, one for each uploaded file
      */
-    List<FileItem> getFileItems();
+    List<FileItem> getFiles();
 
     /**
      * Returns errors generated when parsing the multipart request.

Modified: trunk/waffle-core/src/main/java/org/codehaus/waffle/io/RequestFileUploader.java (484 => 485)

--- trunk/waffle-core/src/main/java/org/codehaus/waffle/io/RequestFileUploader.java	2007-12-15 09:29:25 UTC (rev 484)
+++ trunk/waffle-core/src/main/java/org/codehaus/waffle/io/RequestFileUploader.java	2007-12-15 11:32:26 UTC (rev 485)
@@ -9,7 +9,6 @@
  *****************************************************************************/
 package org.codehaus.waffle.io;
 
-import java.io.File;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
@@ -19,15 +18,22 @@
 import org.apache.commons.fileupload.FileItem;
 import org.apache.commons.fileupload.FileItemFactory;
 import org.apache.commons.fileupload.FileUploadException;
-import org.apache.commons.fileupload.disk.DiskFileItem;
 import org.apache.commons.fileupload.servlet.ServletFileUpload;
 import org.codehaus.waffle.Startable;
 
 /**
+ * <p>
  * Request-based FileUploader. The files are uploaded when the object is started. If there are any errors they are
  * logged and retrievable via the [EMAIL PROTECTED] #getErrors()} method. An action handling a multipart form should first check
  * [EMAIL PROTECTED] #hasErrors()} before doing any other processing.
+ * </p>
  * 
+ * <p>
+ * Note that it is assumed that, by default, resource cleanup should be handled by the FileUpload's cleanup
+ * functionality, as detailed in the <a href="" guide</a>. Custom
+ * behaviour can be introduced by overriding the [EMAIL PROTECTED] #stop()} method.
+ * </p>
+ * 
  * @author Gleb Mazursky
  * @author Mauro Talevi
  */
@@ -48,8 +54,15 @@
         this.itemFactory = itemFactory;
     }
 
-    public List<FileItem> getFileItems() {
-        return fileItems;
+    public List<FileItem> getFiles() {
+        List<FileItem> files = new ArrayList<FileItem>();
+        // only return "true" files, ie non-form fields
+        for (FileItem file : fileItems) {
+            if ( !file.isFormField() ){
+                files.add(file);
+            }
+        }
+        return files;
     }
 
     public Collection<String> getErrors() {
@@ -61,28 +74,21 @@
     }
 
     /**
-     * Upload files on request init
+     * Upload files on request start
      */
     public void start() {
         uploadFiles(request, itemFactory);
     }
 
     /**
-     * Performs files cleanup on request destroy
+     * Performs any additional operation on request stop.
      */
     public void stop() {
-        for (FileItem file : getFileItems()) {
-            if (file instanceof DiskFileItem) {
-                File diskFile = ((DiskFileItem) file).getStoreLocation();
-                if (diskFile.exists()) {
-                    diskFile.delete();
-                }
-            }
-        }
+        // does nothing by default
     }
 
     /**
-     *  Processes request to retrieve file uploads and records any errors.
+     * Processes request to retrieve file uploads and records any errors.
      * 
      * @param request the HttpServletRequest
      * @param itemFactory the FileItemFactory


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to