Ver Mensaje Individual
  #8 (permalink)  
Antiguo 26/07/2010, 15:25
Avatar de Xerelo
Xerelo
 
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Subir archivos y valores de campo de input de formulario

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.