Ver Mensaje Individual
  #9 (permalink)  
Antiguo 09/01/2010, 12:10
pepe_3059
 
Fecha de Ingreso: marzo-2008
Mensajes: 39
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: recuperar una imagen de la Bd al jsp

yo lo hice con un servlet y llamandolo desde una etiqueta img src="NombreServlet"


la idea es escribir en un ServletOutputStream, te muestro el codigo del metodo que uso


InputStream imagen = null;
try {

String sql = "SELECT image FROM images WHERE id_image=5";
//mi campo BLOB se llama image
//y tiene un campo id_image
ResultSet rs = msql.doQuery(sql);
//doQuery es un metodo propio que ejecuta la consulta y devuelve un ResultSet
//Puedes buscar como realizar consultas

InputStream inputStream = null; //la imagen la guardaremos en un InputStream
FileInputStream file = null;

if (rs.next()) {

inputStream = rs.getBinaryStream(1); //Obtenemos el binario del campo Blob
} else {
file = new FileInputStream("C:\\sinFoto.gif"); //en caso de que no haya resultados
inputStream = file;
}
imagen = inputStream; //Esto puede ser extra, despues optimizas
} catch (SQLException e) {
System.out.println("Error seleccionaDataCliente(): " + e.getMessage());
}
ServletOutputStream bOut = response.getOutputStream();
//Aqui es la salida del servlet

byte[] buffer = new byte[240996];
for (;;) {
int nBytes = imagen.read(buffer);
if (nBytes == -1) {
break;
}
bOut.write(buffer);
}
imagen.close();
bOut.flush();
bOut.close();



ya declarado, el servlet lo llamo desde un jsp con la etiqueta html <img


saludos espero no haber sido confuso