Buenos dias, estoy realizando un proyecto para la carrera que consiste en una imitación de ebbay por asi decirlo el caso esque yo he guardado los diferentes articulos en una tabla llamada articulos, uno de los atributos es un campo de tipo blob que contiene la imagen del articulo. Ya he conseguido guardarla correctamente en la base de datos sin embarlo a la hora de recuperarla no soy capaz.. os pongo mi codigo a ver si pueden indicarme
Código:
<body>
<header>
<a href="index.jsp">
<!-- <em><img src="IMG/CoolClips_vc026403.png"/></em>-->
<em>Vibbay</em>
</a>
<nav>
<ul>
<li><a href="inicioSesion.jsp">Acceder</a></li>
<li><a href="formularioRegistro.jsp">Registrarse</a></li>
</ul>
</nav>
</header>
<%String categoriaB = request.getParameter("categoria");%>
<div class="form">
<div id="elements">
<table >
<tr><td><b>NombreProducto</b></td><td><b>Categoria</b></td><td><b>Descripcion</b></td><td><b>Precio</b></td><td><b>Foto</b></td></tr>
<%!
private Connection con;
private Statement set;
private ResultSet rs;
public void jspInit() {
con = BD.getConexion();
};
public void jspDestroy() {
System.out.println("Entrando en el destroy()...");
BD.destroy();
};
%>
<%
try {
String nombreproducto;
String categoria;
String descripcion;
Float precio;
InputStream foto;
//nueva
OutputStream oImagen;
//
set = con.createStatement();
rs = set.executeQuery("SELECT * FROM articulo where categoria='"+categoriaB+"'");
while (rs.next()) {
nombreproducto = rs.getString("nombreproducto");
categoria = rs.getString("categoria");
descripcion = rs.getString("descripcion");
precio = rs.getFloat("precio");
// foto = rs.getBinaryStream("foto");
//nueva
byte array[] = rs.getBytes("foto");
response.setContentType("image/gif");
oImagen = response.getOutputStream();
oImagen.write(array);
oImagen.flush();
oImagen.close();
%>
<tr><td><%=nombreproducto%></td>
<td><%=categoria%></td>
<td><%=descripcion%></td>
<td><%=precio%></td>
<td><%=oImagen%></td></tr>
<%
}
rs.close();
set.close();
//con.close();
} catch (Exception ex) {
System.out.println("Error en acceso a BD Vibay08" + ex);
}
%>
</table>
</div>
</div>
</body>
Nota: este ultimo codigo me da un error que dice asi: java.lang.IllegalStateException: getOutputStream() ya ha sido llamado para esta respuesta
Cualquier consejo sera bien recibido, Gracias!