entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Código para mostrar una imagen BLOB de MySQL en JSP

QUIERO CREAR UN ARCHIVO "MOSTRAR.JSP" para ahi mostrar los datos que estan en mi base de datos de mysql,
para mostrar nombre(VARCHAR), marca(VARCHAR) e imagen(BLOB)

TENGO ESTE CODIGO INSERTAR.JSP

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@include file="conexion.jsp" %>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1>Insertar</h1>
        <%
        String nombre=request.getParameter("txtnombre");
        String marca=request.getParameter("txtmarca");
        String imagen=request.getParameter("txtimagen");

        if(nombre!=null && marca!=null && imagen!=null){
            String qry ="insert into t_imagenes(nombre,marca,imagen) values('"+nombre+"','"+marca+"','"+imagen+"')";
            sql.executeUpdate(qry);
            out.print("Datos Registrados "
                    + "<a href='index.jsp'>REGRESAR</a>");

        }else{

        %>
        <form name="frmimagenes" method="post" action="insertar.jsp">
           nombre: <input type="text" name="txtnombre"><br>
           marca: <input type="text" name="txtmarca"><br>
           imagen: <input type="file" name="txtimagen" value="" size="50" ><br>
           <input type="submit" value="Guardar">
        </form>

        <%}//else%>
    </body>
</html>

VI ESTE CODIGO, PERO NO MUESTRA PARA IMAGENES, NO ME FUNCIONO

<div id="contenido">
            <span>Datos del usuario +variable</span>
            <%
            Consultas con = new Consultas();
            String user = request.getParameter("user");
            ResultSet rs = con.Usuario();
                while (rs.next()){
                    %>
                    <table width="200" border="1">
                        <tr>
                            <td>DNI: <%=rs.getString(1)%></td>
                        </tr>
                        <tr>
                            <td>Nombre: <%=rs.getString(3)%></td>
                        </tr>
                        <tr>
                            <td>Apellidos: <%=rs.getString(4)%></td>
                        </tr>
                        <tr>
                            <td>Contraseña: <%=rs.getString(2)%></td>
                        </tr>
                    </table>
                    <%
                }
            String ruta="novedades";
            %>
        </div>

3votos

magarzon comentado

Buenas.

Hace más de 15 años que no utilizo JSP (are you from the past?), por eso no te puedo dar una respuesta en código, pero sí una orientación:

Cuando el navegador muestra una imagen, el 99.9% de las veces la imagen no está "embebida" en el código HTML de la página (el 0.1% restante son casos donde por optimización o por otros motivos la imagen está codificada en base64 como valor del atributo src).

Es decir, que no puedes devolver HTML y la imagen.
Lo que sí puedes es devolver el HTML y en el tag de la imagen crear una URL, que será la que genere tu imagen. Algo así:

<img src="/images/<%=$image.getId()"></img>

Y entonces tener un JSP asociado a esa url (/images) que sea capaz de con ese id, coger el BLOB de la base de datos y devolver el contenido con un Content-Type image/png, por ejemplo.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta