Foros del Web » Programación para mayores de 30 ;) » Java »

recuperar una imagen de la Bd al jsp

Estas en el tema de recuperar una imagen de la Bd al jsp en el foro de Java en Foros del Web. Hola, en mi bd tengo una tabla que contiene un dato del tipo blob, lo que yo quiero es recuperar este y mostralo en un ...
  #1 (permalink)  
Antiguo 30/07/2007, 21:48
 
Fecha de Ingreso: mayo-2006
Mensajes: 137
Antigüedad: 18 años
Puntos: 1
recuperar una imagen de la Bd al jsp

Hola, en mi bd tengo una tabla que contiene un dato del tipo blob, lo que yo quiero es recuperar este y mostralo en un jsp.

La distribución de proyecto que es tengo mi interfaz un archivo .jsp, este tiene un bean q hace referencia a una clase , en esa clase tengo mi consulta que va hacia otra clase que devuelve la imagen, pero como la muestro en mi jsp?.

Para hacer consultas ocupo un código como este:

Código:
<%! String id="";%>
            <%! String nom_img="";%>
            <% String dat_img=img.imagenes();
            StringTokenizer imagen=new StringTokenizer(dat_img,"@");%>
            
            <table align="center">
               <% while(imagen.hasMoreTokens()){%>
               <form method="post">
               <%     id=imagen.nextToken();
                    nom_img=imagen.nextToken();
                %>
Cuál sería el tipo de dato que necesito para recuperar la imagen, intente creando un tipo <%! Blob img%> pero me marca error.
  #2 (permalink)  
Antiguo 01/08/2007, 01:26
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 3 meses
Puntos: 10
Re: recuperar una imagen de la Bd al jsp

Wenas

Pues un oracle.sql.BLOB.

Código PHP:
    Statement stmt null;    
    
ResultSet rs null;
    
oracle.sql.BLOB blob null;
    
oracle.sql.BLOB logo null;
    
byte [] resultado=null;
  
String query "select logo from logos"

    try
    {
        
stmt con.createStatement();    
        
rs stmt.executeQuery(query);
        
InputStream stream null;
        
int size 0;
        if (
rs.next())
        {
            
blob=((OracleResultSet)rs).getBLOB(1);
            if (
null != blob)
            {
                
logo blob;          
                
stream logo.getBinaryStream();
                
size = (int) logo.length();
                
resultado = new byte [size];
                
stream.read(resultado);
            }
               else
               {
                      
//si no hay logo sacamos una imagen en blanco
                      
ServletContext sc getServletContext();
                        
                      
String filename sc.getRealPath(File.separator "imagenes" File.separator "nada.jpg");
                       
File f=new File(filename);
                       
size=(int) f.length();
                       
resultado=new byte[size];
                       
stream = new BufferedInputStream(new FileInputStream(f));
                       
stream.read(resultado);
               }
        }   
    }catch (
IOException e)
    {
         
Traza.exception(this,"->obtenerLogo->IOException->"+e.getMessage());
    }
    
    catch (
SQLException e)
    {
        
Traza.exception(this,"->obtenerLogo->SQLException->"+e.getMessage());
    }
    
    return 
resultado;

  #3 (permalink)  
Antiguo 03/08/2007, 14:05
 
Fecha de Ingreso: julio-2007
Mensajes: 6
Antigüedad: 16 años, 9 meses
Puntos: 0
recuperar una imagen de la Bd al jsp

Por favor me puede decir como es que se guarda una imagen a la base de datos, no logro hacerlo.

si me pudieras mostrar de la forma mas completa te lo agradeceria mucho!!!!!!
Al igual no se como hago para seleccionar el archivo.
  #4 (permalink)  
Antiguo 03/08/2007, 23:50
 
Fecha de Ingreso: mayo-2006
Mensajes: 137
Antigüedad: 18 años
Puntos: 1
Re: recuperar una imagen de la Bd al jsp

busca en internet uploadfile o aqui tengo algo http://aumakua.wordpress.com/2007/07...dor-desde-jsp/ igual y te sirve
  #5 (permalink)  
Antiguo 04/08/2007, 12:22
 
Fecha de Ingreso: mayo-2006
Mensajes: 137
Antigüedad: 18 años
Puntos: 1
Re: recuperar una imagen de la Bd al jsp

elAntonie, muchas gracias por la ayuda, pero con el método no tengo problema, mas que nada quiero saber como ese arreglo de bytes lo puedo imprimir en mi hoja de jsp, ya he probado que lo que regresa ese método, por lo que puse en un método asignarlo a un <img src="<%= img%>"> pero no se muestra nada.

De todos modos, gracias!
  #6 (permalink)  
Antiguo 21/08/2007, 02:41
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 3 meses
Puntos: 10
Re: recuperar una imagen de la Bd al jsp

Cita:
Iniciado por vljc2004 Ver Mensaje
elAntonie, muchas gracias por la ayuda, pero con el método no tengo problema, mas que nada quiero saber como ese arreglo de bytes lo puedo imprimir en mi hoja de jsp, ya he probado que lo que regresa ese método, por lo que puse en un método asignarlo a un <img src="<%= img%>"> pero no se muestra nada.

De todos modos, gracias!
AAAAAAAAAAAAAa

Perdona el lapso de tiempo, las vacaciones y esas cosas.


response.setContentType("image/jpeg");
OutputStream sos = response.getOutputStream();
sos.write(img);
sos.flush();
sos.close();

Todo ello capturando las excepciones de turno, claro,.
  #7 (permalink)  
Antiguo 29/08/2007, 09:19
 
Fecha de Ingreso: enero-2007
Mensajes: 156
Antigüedad: 17 años, 4 meses
Puntos: 1
Re: recuperar una imagen de la Bd al jsp

Hola, estoy yo intentando hacer algo parecido, pero estas líneas de código que pones:

response.setContentType("image/jpeg");
OutputStream sos = response.getOutputStream();
sos.write(img);
sos.flush();
sos.close();

hay que ponerlas en el jsp??

Gracias, un saludo
  #8 (permalink)  
Antiguo 07/01/2010, 18:58
 
Fecha de Ingreso: septiembre-2006
Ubicación: Practicando....
Mensajes: 106
Antigüedad: 17 años, 7 meses
Puntos: 0
Respuesta: recuperar una imagen de la Bd al jsp

Hola.... alguien sabe como desplegar la información de un BLOB en un JSP ojala me puedan ayudar saludos..
__________________
Saludillos Gariel
  #9 (permalink)  
Antiguo 09/01/2010, 12:10
 
Fecha de Ingreso: marzo-2008
Mensajes: 39
Antigüedad: 16 años, 1 mes
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
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:11.