Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/09/2007, 01:07
nemrp
 
Fecha de Ingreso: julio-2007
Mensajes: 21
Antigüedad: 17 años, 8 meses
Puntos: 0
Guardar imagen en una base de datos con java

Hola, buenos días, tengo una duda que me está dando dolor de cabeza. A ver is alguien me puede ayudar porque ya no se por donde seguir. Estoy usando el codigo que hay las FAQs de este subforo para generar thumbnails con Java. El enlace est este:

http://www.forosdelweb.com/1418257-post28.html

Lo he modificado un poco para que se adapte a lo que quiero hacer. Tengo un formulario donde hay un input file para que el usuario carge en él la imagen que quiera. La dirección de donde está la imagen se la paso a un jsp donde se guarda dicha dirección en un atributo String de un objeto Java. Este objeot lo envío a una clase encargada de recorrer todo sus atributos y guardarlos en una base de datos. La dirección de la imagen la guardo en un campo texto (VARCHAR2) y la imagen en sí en un directorio del servidor. Hasta aquí la explicación de lo que estoy haciendo.

Paso ahora a comentar cuál es mi problema. Cuando la dirección llega de la imagen llega, a través del onjeto, a la clase encargada de guardar los datos en la base de datos salta la siguiente excepción:

Uncaught error fetching image:
java.lang.NullPointerException
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at sun.awt.image.FileImageSource.getDecoder(Unknown Source)
at sun.awt.image.InputStreamImageSource.doFetch(Unkno wn Source)
at sun.awt.image.ImageFetcher.fetchloop(Unknown Source)
at sun.awt.image.ImageFetcher.run(Unknown Source)


Del código de la FAQ sólo he modificado aquel que se encarga de enviar los atributos de la imagen de entrada y de salida a la clase que hace el resize. Os pongo aquí ese código que he cambiado, el resto es igual que en la FAQ.

Código:
ImageResize img = new ImageResize();
img.setImgOriginal(objeto.getImg());
objeto.setImg("WebContent/img/userimg/" + generaNombre() + "jpg");
img.setImgResult(objeto.getImg());
img.setCalidad(100);
img.setHeight(75);
img.setWidth(78);
img.resize();
NOTA: "objeto" es el objeto Java que guarda entre otros atributos la dirección de la imagen que quiere subir el usuario; "getImg()" es un método del objeto Java para obtener la dirección de la imagen (String); "generaNombre()" es un método que crea un nombre aleatorio y único a la imagen que va a ser guardada en el servidor.

Bueno, espero que me podáis ayudar ya que necesito tener esto para poder continuar con la aplicación que estoy desarrollando y ya llevo varios días de retraso. Muchísimas gracias.