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

Guardar imagen en base de datos

Estas en el tema de Guardar imagen en base de datos en el foro de Java en Foros del Web. Hola, me gustaria guardar una imagen (Que tengo guardada en un objeto Image) en una base de datos mysql (en un campo Blob). Mi problema ...
  #1 (permalink)  
Antiguo 04/04/2003, 04:00
 
Fecha de Ingreso: abril-2003
Mensajes: 3
Antigüedad: 21 años, 1 mes
Puntos: 0
Pregunta Guardar imagen en base de datos

Hola, me gustaria guardar una imagen (Que tengo guardada en un objeto Image) en una base de datos mysql (en un campo Blob). Mi problema es que para guardar datos en el campo Blob yo guardo un array de Bytes y no se como convertir un objeto Image (tb puede ser ImageIcon) en un array de bytes. Alguien sabe como hacerlo?
Si no es posible, ¿Alguien sabe otra forma de guardar la imagen (Que está cargada en memoria en un objeto Image o ImageIcon) en el campo Blob de la base de datos?
Un saludo a todos y gracias de antemano.
  #2 (permalink)  
Antiguo 07/04/2003, 16:15
 
Fecha de Ingreso: enero-2003
Mensajes: 52
Antigüedad: 21 años, 3 meses
Puntos: 0
Una práctica común es copiar el archivo de la imagen a una carpeta en tu host, tomar el nombre completo del path y guardarlo en una columna de una tabla.
  #3 (permalink)  
Antiguo 08/04/2003, 01:50
 
Fecha de Ingreso: abril-2003
Mensajes: 3
Antigüedad: 21 años, 1 mes
Puntos: 0
Ok y gracias. Esta posibilidad ya la había pensado. Pensaba que se podría hacer de otra manera más directa, pero si no se puede, lo haré así.

Bye
  #4 (permalink)  
Antiguo 08/04/2003, 03:58
Avatar de boricles  
Fecha de Ingreso: diciembre-2002
Mensajes: 53
Antigüedad: 21 años, 4 meses
Puntos: 0
Hola

Para insertar un registro con imagenes en una tabla, hay que definir un preparedstatement, por ejemplo:

PreparedStatement pstmt = connection.prepareStatement(
"insert into Country values(?, ?, ?)");

Suponiendo que ya creaste la conexion a tu db y que tienes la tabla country.

Las imagenes se almacenan por lo general en archivos. Necesitas manejar streams para poder almacenar tu imagen en la db.

//
File file = new File(imageFilenames[i]);
InputStream inputImage = new FileInputStream(file);
pstmt.setBinaryStream(2, inputImage, (int)(file.length()));

Podrias obtener un inputstream a partir de tu imageicon, en este momento no recuerdo como hacerlo.

Para recuperar la imagen de tu tabla :

//
Blob blob = rs.getBlob(1);
ImageIcon imageIcon = new ImageIcon(
blob.getBytes(1, (int)blob.length()));

Saludos y espero que te sirva de algo.
  #5 (permalink)  
Antiguo 08/04/2003, 04:15
 
Fecha de Ingreso: abril-2003
Mensajes: 3
Antigüedad: 21 años, 1 mes
Puntos: 0
Gracias por la información, me va a venir muy bien.
Podrías recordar como obtener un inputstream del imageicon o por lo menos darme una pista de como hacerlo, porque si es así ya quedaría chapó.

Saludos
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 08:59.