Foros del Web » Programación para mayores de 30 ;) » Java »

Problema al cargar un archivo a mi servidor en ubuntu usando FileUpload

Estas en el tema de Problema al cargar un archivo a mi servidor en ubuntu usando FileUpload en el foro de Java en Foros del Web. Hola a todos! Hace un tiempo implemente un servicio de carga remota de archivos desde un cliente web a mi servidor usando FileUpload sobre un ...
  #1 (permalink)  
Antiguo 28/10/2011, 13:09
 
Fecha de Ingreso: octubre-2011
Mensajes: 4
Antigüedad: 12 años, 6 meses
Puntos: 0
Problema al cargar un archivo a mi servidor en ubuntu usando FileUpload

Hola a todos!
Hace un tiempo implemente un servicio de carga remota de archivos desde un cliente web a mi servidor usando FileUpload sobre un servlet con glassfish 3, este servicio lo desplegue en una plataforma windows, y funciona perfectamente , aun cuando la version de fileUpload que estaba utlizando era una antigua (la v 1.0).

Ahora hace unos dias migre todos mis servidores a linux, estoy trabajando sobre Ubuntu 10.10 LTS, y es aqui donde empieza mi problema , aunque todo esta absolutamente igual al despliegue hecho en windows, no logro hacer que la request me traiga consigo el contenido del archivo que estoy subiendo remotamente y por lo tanto no puedo subir el archivo, es decir cuando lo evaluo por medio del metodo parseRequest(request) de FileUpload este me entrega una lista vacia.

Los procesos generados en el servlet no muestran ninguna excepcion, y todo parece estar de maravilla, pero no sube ningun archivo. Igualmente he probado con varios exploradores (Mozilla y chrome) accediendo a mi servicio incluso en distintos SO windows y linux, y sigue presentando el mismo problema.

No se que hacer, he seguido distintas formas de implementar el proceso de carga con fileUpload, desde la doc que ellos presentan en su pagina hasta codigos presentados en foros, pero sigue dando el mismo comportamiento.

Agradezco mucho su atencion y colaboracion.
  #2 (permalink)  
Antiguo 28/10/2011, 14:43
 
Fecha de Ingreso: enero-2011
Mensajes: 47
Antigüedad: 13 años, 3 meses
Puntos: 5
Respuesta: Problema al cargar un archivo a mi servidor en ubuntu usando FileUpload

Solo por si acaso...ya verificastes que tu formulario HTML tenga algo como lo siguiente:

Código HTML:
Ver original
  1. <form enctype="multipart/form-data"

Porque sin eso nunca llegara tu archivo al servidor
  #3 (permalink)  
Antiguo 28/10/2011, 15:23
 
Fecha de Ingreso: octubre-2011
Mensajes: 4
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Problema al cargar un archivo a mi servidor en ubuntu usando FileUpload

Hola,

Si, eso lo revise, he parametrizado el form de distintas formas pero esta es la mas sencilla, con la que trabajo en windows:

Código HTML:
 <FORM  method="POST" enctype="multipart/form-data"  action="/Test_Server/UploadProcessorServlet" >
            <INPUT type="file">
            <INPUT type="submit">
        </FORM> 
tambien intente redireccionando la accion a un JSP, pero no funciono.

y este fue uno de los cod que he utilizado para el lado del servlet

Código:
// Create a factory for disk-based file items
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(4096);
File f = new File(PATHUPLOADCONTENT);
factory.setRepository(f);
// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload(factory);
// Set overall request size constraint
upload.setSizeMax(1024*10);
// Parse the request
List fileItems = upload.parseRequest(request);
tambien utilice este, aunque esta deprecated, pero tampoco funciono

Código:
// construimos el objeto que es capaz de parsear la peticion
fu = new DiskFileUpload();
// maximo numero de bytes
fu.setSizeMax(1024 * 1000000); // 1 GB
// tamano por encima del cual los ficheros son escritos directamente en disco
fu.setSizeThreshold(4096);

// directorio en el que se escribirán los ficheros con tamaño superior al soportado en memoria
fu.setRepositoryPath(PATHUPLOADCONTENT);
// ordenamos procesar los ficheros
List fileItems = fu.parseRequest(request);
he generado variaciones sobre los parametros pero nada parece funcionar.
  #4 (permalink)  
Antiguo 28/10/2011, 15:28
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Problema al cargar un archivo a mi servidor en ubuntu usando FileUpload

No se si esto vaya a influir, pero, ponle un nombre a las etiquetas del formulario.
Código HTML:
Ver original
  1. <input type="file" name="archivo" />
  2. <input type="submit" name="submit" value="Subir" />
Nunca he usado esa librería que estas utilizando.

Edit: Veo esto en la documentacion de FileUpload:
Cita:
Why is parseRequest() returning no items?
This most commonly happens when the request has already been parsed, or processed in some other way. Since the input stream has aleady been consumed by that earlier process, it is no longer available for parsing by Commons FileUpload.
  #5 (permalink)  
Antiguo 28/10/2011, 15:54
 
Fecha de Ingreso: octubre-2011
Mensajes: 4
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Problema al cargar un archivo a mi servidor en ubuntu usando FileUpload

Problema solucionado!!!

Hola Ronruby, muchas gracias por tu aporte

apenas le di nombre a mi elemento input file, el servidor reconocio la request, esto me genero un problema, que no habia generado en windows, lanzandome la siguiente excepcion, debo decir q estoy utlizando la ultima version de FileUpload la v. 1.2.1.

java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream

para solucionar esto, baje la lib Commons IO 2.1, que se encuentra en http://commons.apache.org/io/download_io.cgi, y una vez instalada en el PATH del servidor el asunto quedo arreglado. :D

Etiquetas: fileupload, servlet, ubuntu
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:03.