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

Problemas al subir imagenes Struts2

Estas en el tema de Problemas al subir imagenes Struts2 en el foro de Java en Foros del Web. Buenas, Tengo un problema al subir imagenes en Struts2, tengo lo siguiente: JSP: <s:file name="myFile" label="Imagen"/> ACTION: private File myFile; con sus getter y sus ...
  #1 (permalink)  
Antiguo 30/08/2011, 04:42
 
Fecha de Ingreso: agosto-2011
Mensajes: 3
Antigüedad: 12 años, 8 meses
Puntos: 0
Problemas al subir imagenes Struts2

Buenas,

Tengo un problema al subir imagenes en Struts2, tengo lo siguiente:

JSP: <s:file name="myFile" label="Imagen"/>

ACTION: private File myFile; con sus getter y sus setters correspondiente

Struts.xml: <action name="guardarImagen" class="actions.ImagenAction" method="guardarImagen">
<result name="input">/jsp/subirImagen.jsp</result>
<result name="success">/jsp/subirImagen.jsp</result>
</action>

De esta manera al submitir me salta el siguiente error en consola

(ParametersInterceptor.java:204) com.opensymphony.xwork2.interceptor.ParametersInte rceptor - ParametersInterceptor - [setParameters]: Unexpected Exception caught setting 'myFile' on 'class actions.ImagenAction: Error setting expression 'myFile' with value '[Ljava.lang.String;@1875303f'

Y en pantalla me muestra el siguiente mensaje Invalid field value for field "myFile".

Si añado el interceptor al Action (sin especificarle ningun parametro), es decir:

<action name="guardarImagen" class="actions.ImagenAction" method="guardarImagen">
<interceptor-ref name="fileUpload"></interceptor-ref>
<result name="input">/jsp/subirImagen.jsp</result>
<result name="success">/jsp/subirImagen.jsp</result>
</action>

Ahora ya no me salta el errror anterior si no que me entra en el Action pero el atributo myFile viene a NULL, compruebo si me llega el parametro ActionContext.getContext().getParameters().get("my File") y esto me devuelve un string con el nombre del archivo. Por lo que parece que me esta cogiendo el <s:file> como un input normal.

¿Alquien puede ayudarme?.

Tengo las librerias Ok, he probado tambien a definirle un tamaño maximo tanto en struts.properties como parametro del interceptor, pero no hay maneraaaaaaaaaaaa.
  #2 (permalink)  
Antiguo 30/08/2011, 04:49
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Problemas al subir imagenes Struts2

Al hacer eso acabas de eliminar al resto de interceptores, incluido el que transporta los objetos de la request a tu action.

Tienes que añadirlo a la pila de interceptores, no sustituirla.

De todas formas, no tendrías por qué añadirlo, ya que el FileUpload viene en la pila por defecto (defaultStack).

http://struts.apache.org/2.0.11/docs/interceptors.html
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 30/08/2011, 05:23
 
Fecha de Ingreso: agosto-2011
Mensajes: 3
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Problemas al subir imagenes Struts2

Gracias Xerelo, algo así intuía xD. Por lo menos ya tengo claro que no hay que añadir el interceptor a la declaracion del action pero entonces sigo teniendo el problema, es que ni siquiera me entra en el Action, es como si saltara el validators de echo me muestra como fieldError el mensaje de Invalid field value for field "myFile".

Que desesperación, llevo dos días para la mierda esta y no tengo cojones de sacarlo.
  #4 (permalink)  
Antiguo 30/08/2011, 07:49
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Problemas al subir imagenes Struts2

La excepción te está saltando en el paramsInterceptor, que es el que coge los elementos de la request y los pasa a tu action, así que efectivamente no llega al action.

Para poder subir ficheros tienes que usar un formulario con el atributo enctype="multipart/form-data". Busca ejemplos.

Otra posible causa del problema es que no hayas declarado correctamente los nombres y setters de los objetos que quieres recuperar en el action.

Guíate por un totorial, están para hacernos la vida más fácil.

http://struts.apache.org/2.0.14/docs/file-upload.html
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #5 (permalink)  
Antiguo 30/08/2011, 14:08
 
Fecha de Ingreso: agosto-2011
Mensajes: 3
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Problemas al subir imagenes Struts2

Joderrrr, muchas gracias. Era exactamente eso (enctype="multipart/form-data"), vaya tonteria causada por el copy paste xD.

Etiquetas: imagenes, jsp, struts2
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 20:56.