No te había entendido bien, por lo que parece el problema que tienes es que al hacer la parseRequest desaparece el contenido de la request, por lo que usar un forward no te serviría ya que la request ya estaría vacía.
La verdad es que no domino el tema ya que siempre he utilizado Struts, pero leyendo este enlace
http://commons.apache.org/fileupload/using.html
parece que si el archivo es grande, no se mantiene en memoria, se guarda como un fichero temporal
Cita: * Uploaded items should be retained in memory as long as they are reasonably small.
* Larger items should be written to a temporary file on disk.
* Very large upload requests should not be permitted.
* The built-in defaults for the maximum size of an item to be retained in memory, the maximum permitted size of an upload request, and the location of temporary files are acceptable.
De todas formas, por lo que pone, al hacer el parseRequest te devuelve una lista con los objetos (campos de formulario y ficheros), que creo que es la que deberías utilizar ya que te permite manejar de forma cómoda campos y ficheros, sin tener que utilizar una clase intermedia, trasladando sólo esta List.
Cita: // Process a file upload
if (!item.isFormField()) {
String fieldName = item.getFieldName();
String fileName = item.getName();
String contentType = item.getContentType();
boolean isInMemory = item.isInMemory();
long sizeInBytes = item.getSize();
...
}
Incluso parece que hay un método isInMemory() que te permite saber si está en memoria o ha sido guardado como archivo temporal. De esa forma podrías confirmar que te desaparece.
Según pone en la API, deberías utilizar ServletFileUpload en vez del FileUpload
http://commons.apache.org/fileupload...vletRequest%29 Cita: Deprecated. Use the method in ServletFileUpload instead.