Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/01/2017, 05:38
Eslas
 
Fecha de Ingreso: abril-2016
Mensajes: 22
Antigüedad: 8 años, 7 meses
Puntos: 0
Mostrando Imagen tipo blob

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!