From cbda9a16cca1baa9f5aa8acdaedc32f54c7c9ca7 Mon Sep 17 00:00:00 2001
From: jeb228
+ * The request will have an attribute named by {@link #FILE_ITEM_MAP}. Either + * this attribute or the call to {@link #getFiles()} will produce a map that may + * be empty but is never null. The keys to the map are the field names for the + * file fields. Since a form may have multiple fields with the same name, each + * field name maps to a list of items. If a user does not provide a file to be + * uploaded in a given field, the length of the file will be 0. + *
+ *
* Most methods are declared here, and simply delegate to the wrapped request.
* Methods that have to do with parameters or files are handled differently for
* simple requests and multipart request, and are implemented in the
@@ -35,6 +43,8 @@ import org.apache.commons.fileupload.servlet.ServletFileUpload;
*/
@SuppressWarnings("deprecation")
public abstract class FileUploadServletRequest implements HttpServletRequest {
+ public static final String FILE_ITEM_MAP = "file_item_map";
+
// ----------------------------------------------------------------------
// The factory method
// ----------------------------------------------------------------------
diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/filestorage/uploadrequest/MultipartHttpServletRequest.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/filestorage/uploadrequest/MultipartHttpServletRequest.java
index 217a43a5c..2fbe92f1f 100644
--- a/webapp/src/edu/cornell/mannlib/vitro/webapp/filestorage/uploadrequest/MultipartHttpServletRequest.java
+++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/filestorage/uploadrequest/MultipartHttpServletRequest.java
@@ -69,6 +69,7 @@ class MultipartHttpServletRequest extends FileUploadServletRequest {
LOG.debug("Parameters are: " + this.parameters);
this.files = Collections.unmodifiableMap(files);
LOG.debug("Files are: " + this.files);
+ request.setAttribute(FILE_ITEM_MAP, this.files);
}
/**
diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/filestorage/uploadrequest/SimpleHttpServletRequestWrapper.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/filestorage/uploadrequest/SimpleHttpServletRequestWrapper.java
index 48fb249ed..11f90360d 100644
--- a/webapp/src/edu/cornell/mannlib/vitro/webapp/filestorage/uploadrequest/SimpleHttpServletRequestWrapper.java
+++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/filestorage/uploadrequest/SimpleHttpServletRequestWrapper.java
@@ -20,6 +20,7 @@ class SimpleHttpServletRequestWrapper extends FileUploadServletRequest {
SimpleHttpServletRequestWrapper(HttpServletRequest request) {
super(request);
+ request.setAttribute(FILE_ITEM_MAP, Collections.EMPTY_MAP);
}
// ----------------------------------------------------------------------
@@ -35,7 +36,7 @@ class SimpleHttpServletRequestWrapper extends FileUploadServletRequest {
public Map