09/01/2010, 12:10
|
| | 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 |