- 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
- trunk/examples/simple-example/src/main/java/org/codehaus/waffle/example/simple/UploadController.java
- trunk/examples/simple-example/src/main/webapp/upload.jspx
- trunk/waffle-core/src/main/java/org/codehaus/waffle/io/FileUploader.java
- trunk/waffle-core/src/main/java/org/codehaus/waffle/io/RequestFileUploader.java
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:
