Foros del Web » Programando para Internet » PHP »

Mostrar imagen blob en tabla

Estas en el tema de Mostrar imagen blob en tabla en el foro de PHP en Foros del Web. Como lo dice el titulo x) la verdad e estado leyendo pero no e podido lograr que se muestre la imagen. la imagen ya se ...
  #1 (permalink)  
Antiguo 25/02/2010, 18:40
 
Fecha de Ingreso: febrero-2010
Mensajes: 15
Antigüedad: 14 años, 2 meses
Puntos: 1
Mostrar imagen blob en tabla

Como lo dice el titulo x) la verdad e estado leyendo pero no e podido lograr que se muestre la imagen.

la imagen ya se graba en la BD pero nose como mostrarla en la tabla.

aki les dejo el codigo con el k muestro los datos, orita nadamas puedo mostrar el campo descripcion:

Código PHP:
Ver original
  1. <?php
  2. function conectarse($host,$usuario,$password,$BBDD){
  3.    $link=mysql_connect($host,$usuario,$password) or die (mysql_error());
  4.    mysql_select_db($BBDD,$link) or die (mysql_error());
  5.    return $link;
  6. }
  7.  
  8. $link=conectarse("localhost","user","pass","bd");
  9.  
  10. $id = $_GET['id'];
  11. $sql = "SELECT * FROM detalles WHERE id = '$id';";
  12. $sql = mysql_query($sql, $link);
  13.  
  14. $sql = "SELECT descripcion,imagen FROM detalles WHERE id = '$id';";
  15. $sql = mysql_query($sql, $link);
  16.  
  17. while ($rs=mysql_fetch_array($sql))
  18.   {
  19.  
  20.     echo "<tr>"      
  21.            ."<td>".$rs['descripcion']."</td>"
  22.            ."</tr>";
  23.   }
  24. ?>


que me falta? me urge saber

de antemano gracias
  #2 (permalink)  
Antiguo 25/02/2010, 19:00
Avatar de camsworksinc  
Fecha de Ingreso: julio-2008
Ubicación: Queretaro
Mensajes: 261
Antigüedad: 15 años, 9 meses
Puntos: 11
Respuesta: Mostrar imagen blob en tabla

Lo que sucede, es que la imagen se guarda como un archivo binario, y por tanto, tienes que decirle al navegador de alguna manera que la informacion que le vas a mandar se trata de una imagen, para que la interprete como tal.
Una forma es mendiante un script de php, que sea el que le manda la imagen a través de los headers.
Aqui te pongo el codigo PHP que extraje de la suguiente pagina: http://www.wellho.net/mouth/937_Disp...e-via-PHP.html
Código PHP:
Ver original
  1. <?php
  2. mysql_connect("localhost","wellho","xxxxxxx");
  3. mysql_select_db("wellho");
  4. $image = stripslashes($_REQUEST[imname]);
  5. $rs = mysql_query("select * from im_library where filename=\"".
  6. addslashes($image).".jpg\"");
  7. $row = mysql_fetch_assoc($rs);
  8. $imagebytes = $row[imgdata];
  9. header("Content-type: image/jpeg");
  10. print $imagebytes;
  11. ?>

Y en cada imagen que te interesa, se manda llamar al script como la fuente de cada una de ellas:
Código HTML:
Ver original
  1. <title>Demo of Database Image in a page</title>
  2. </head>
  3. Here is your picture:<br>
  4. <img src=picscript.php?imname=potwoods><br>
  5. Example by Well House Consultants
  6. </body>
  7. </html>

Otra forma es creando una imagen con la libreria gd de PHP (MANUAL)a partir de los datos que lees de la base de datos. Es mas complicado, pero no necesitas un script separado.

Suerte!
__________________
¡Malditas computadoras que siempre hacen lo que les DIGO que hagan, no lo que QUIERO que hagan!
  #3 (permalink)  
Antiguo 25/02/2010, 19:15
 
Fecha de Ingreso: febrero-2010
Mensajes: 15
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Mostrar imagen blob en tabla

la verdad casi no entendi x) la imagen ya la tengo en la DB en un Blob en forma resumida como consulto y muestro en pantalla la imagen blob xP?
  #4 (permalink)  
Antiguo 25/02/2010, 19:28
Avatar de camsworksinc  
Fecha de Ingreso: julio-2008
Ubicación: Queretaro
Mensajes: 261
Antigüedad: 15 años, 9 meses
Puntos: 11
Respuesta: Mostrar imagen blob en tabla

En forma resumida (bueno, ni tanto), si entiendo que tu imagen esta en la base de datos como tipo BLOB, pero es muy distinto sacar informacion de texto de la base de datos, y enviarla al navegador para que la despliegue, que un archivo almacenado en la base de datos (en este caso, una imagen) para que se despliegue o descargue.
El archvo esta en la base de datos a manera de informacion binaria. Esta informacion binaria tiene que ser enviada al navegador en forma de archivo, pues el navegador, cuando ve una imagen en una pagina, sabe que proviene de un archivo, y por tanto va y lo busca por medio del nombre que va en la propiedad src del tag IMG.

Una forma de enviarle la informacion como un archivo de IMAGEN, es mediante los encabezados o Headers, en donde se especifica el tipo de archivo (que en este caso, necesitas que sea imagen) y el contenido del archivo. Esto es lo que hace el script de php que te mande (necesitas entenderlo y adecuarlo a tu aplicacion).

Y para mandar llamar al script anterior, se utiliza el tag de IMG de la siguiente forma:
Código HTML:
Ver original
  1. <img src=picscript.php?imname=potwoods>
donde en src esta el script que regresa la imagen (el que esta arriba) y en imname el nombre del archivo que quieres descargar de la base de datos.

En la pagina que te deje viene explicado el concepto.

Suerte!
__________________
¡Malditas computadoras que siempre hacen lo que les DIGO que hagan, no lo que QUIERO que hagan!
  #5 (permalink)  
Antiguo 26/02/2010, 23:47
 
Fecha de Ingreso: febrero-2010
Mensajes: 15
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Mostrar imagen blob en tabla

mira ahora mi problema es k en ves de la imagen me muestra esto :

GIF89ah�@�æ��Š†{skToH4Ž‹©ÈîUOGÿÿô¯¯¨ÐÓË3./Ƕ™{‡‘‰‘^MD;Š«×G7,ŽmSâèÛÄħôóå|„O”¸â‰}iÍž_¢™†ýý zîòæòôèÃhŒ€ZEf41ž¦¬lz‡~|{zT@{tiYiz·¶lu<ÇƲaWGÕãöƒ œ¯öÒŽ¾¿£je_§¢Š¹ª’°rwëìßJT`õûïT+/( aZVqkf«¢•ÁÙõcA.èâÏÒ˸ûñØÞÜˬ‰\ž©s  ”™˜ÛÀóìÓ’šnòüþûç¶òðâŸ}YÕÔ½µŸ…÷õç‰aKÕêis|üúè V[0½N‰>EM¦¯VŸ·Ôe`KöæÎÜß×fkq^7!B ‡ŒEåÔ¯ûôã:7:aL=âîø™X^GJuN:`_bã»y­´€" •VœBqzgnÌζrvZ89(ÿûÆô÷ì\"(Àèfk+~FN%"'2®¯wb M{8?§_c¹¹¹ÿÿÿ!ù�����,����h�@��ÿ€~‚ƒ„…†‡ˆ‰Š‹ŒŽ ‘’“”•–—˜™š›™‚œŸ ¡¢£‘žH‘u­®®Q![kD­u¹º!jq%+qq+ÃÆÇÆRÌÏÍÑJc;¨


lo recorte para no poner todo pero k tengo k hacer para arreglar esto?

este es el codigo k tengo:

Código PHP:
Ver original
  1. <html>
  2. <body bgcolor="#FFFFFF" style="background-image: url('')">
  3. <link href="style.css" type="text/css" rel="stylesheet" />
  4. <head>
  5. <?php
  6. function conectarse($host,$usuario,$password,$BBDD){
  7.    $link=mysql_connect($host,$usuario,$password) or die (mysql_error());
  8.    mysql_select_db($BBDD,$link) or die (mysql_error());
  9.    return $link;
  10. }
  11.  
  12. $link=conectarse("localhost","user","pass","DB");
  13.  
  14. $id = $_GET['id'];
  15. $sql = "SELECT * FROM detalles WHERE id = '$id';";
  16. $sql = mysql_query($sql, $link);
  17.  
  18. $sql = "SELECT descripcion,filetype,imagen FROM detalles WHERE id = '$id';";
  19. $sql = mysql_query($sql, $link);
  20. ?>
  21. <html>
  22. <head>
  23. <title>ASELIN - Asesoria Legal Inmobiliaria</title>
  24. <meta name="author" content="Joel Encinas / [email protected]" />
  25. </head>
  26.  
  27. <center>
  28. <table width="50%" border=0 cellspacing=2 cellpadding=4 style="position:absolute;top:0px;left:0px; bordercolor=; width:720px; height:29px"666633" bgcolor="white">
  29. <tr bgcolor="a0e528"><td><b><font color="437c0b">Descripción</font></b></td><td><b><font color="437c0b">Imagen</font></b></td>
  30. <?
  31. while ($rs=mysql_fetch_array($sql))
  32.   {
  33. $imagen = "<img src='".$rs['imagen']."'>";
  34. echo "<tr>"
  35.            ."<td>".$rs['descripcion']."</td>"
  36.            ."<td>".$rs['imagen']."</td>"
  37.            ."</tr>";
  38.            }
  39. ?>
  40. </table></center>
  41.  
  42. </body>
  43. </html>
  #6 (permalink)  
Antiguo 16/04/2010, 11:59
 
Fecha de Ingreso: septiembre-2009
Ubicación: Queretaro
Mensajes: 51
Antigüedad: 14 años, 7 meses
Puntos: 2
De acuerdo Respuesta: Mostrar imagen blob en tabla

Cita:
Iniciado por Jowel17 Ver Mensaje
mira ahora mi problema es k en ves de la imagen me muestra esto :

GIF89ah�@�æ��Š†{skToH4�Ž‹©ÈîUOGÿÿô¯¯¨ÐÓË3./Ƕ™{‡‘‰‘^MD;Š«×G7,ŽmSâèÛÄħôóå|„O”¸â‰}iÍž_¢™†ýý zîòæòôèÃhŒ€ZEf41ž¦¬lz‡~|{zT@{tiYiz·¶�lu<ÇƲaWGÕãöƒ œ¯öÒŽ¾¿£je_§¢Š¹ª’°rwëìßJT`õûïT+/( aZVqkf«¢•ÁÙõcA.èâÏÒ˸ûñØÞÜˬ‰\ž©s  ”™˜ÛÀ�óìÓ’šnòüþûç¶òðâŸ}YÕÔ½µŸ…÷õç‰aKÕêis|üúèV[0½N‰>EM¦¯VŸ·Ôe`KöæÎÜß×fkq^7!B ‡ŒEåÔ¯ûôã:7:aL=âîø™X^GJuN:`_bã»y*´€" •�VœBqzgnÌζrvZ89(ÿûÆô÷ì\"(�Àèfk+~FN%"'2®¯�wb M{8?§_c¹¹¹ÿÿÿ!ù�����,����h�@��ÿ€~‚ƒ„…†‡ˆ‰Š‹Œ�Ž� ‘’“”•–—˜™š›™‚œŸ ¡¢£‘žH‘u*®®Q![kD*u¹º!jq%+qq+ÃÆÇÆRÌÏÍÑJc;¨


lo recorte para no poner todo pero k tengo k hacer para arreglar esto?
Código PHP:
Ver original
  1. <html>
  2. <body bgcolor="#FFFFFF" style="background-image: url('')">
  3. <link href="style.css" type="text/css" rel="stylesheet" />
  4. <head>
  5. <?php
  6. function conectarse($host,$usuario,$password,$BBDD){
  7.    $link=mysql_connect($host,$usuario,$password) or die (mysql_error());
  8.    mysql_select_db($BBDD,$link) or die (mysql_error());
  9.    return $link;
  10. }
  11.  
  12. $link=conectarse("localhost","user","pass","DB");
  13.  
  14. $id = $_GET['id'];
  15. $sql = "SELECT * FROM detalles WHERE id = '$id';";
  16. $sql = mysql_query($sql, $link);
  17.  
  18. ?>
  19. <html>
  20. <head>
  21. <title>ASELIN - Asesoria Legal Inmobiliaria</title>
  22. <meta name="author" content="Joel Encinas / [email protected]" />
  23. </head>
  24.  
  25. <center>
  26. <table width="50%" border=0 cellspacing=2 cellpadding=4 style="position:absolute;top:0px;left:0px; bordercolor=; width:720px; height:29px"666633" bgcolor="white">
  27. <tr bgcolor="a0e528"><td><b><font color="437c0b">Descripción</font></b></td><td><b><font color="437c0b">Imagen</font></b></td>
  28. <?
  29. while ($rs=mysql_fetch_array($sql))
  30.   {
  31. $imagen = "<img src='http://tuurl.com/tupath/images.php?id=".$rs['ID']."'>";
  32. echo "<tr>"
  33.            ."<td>".$rs['descripcion']."</td>"
  34.            ."<td>".$imagen."</td>"
  35.            ."</tr>";
  36.            }
  37. ?>
  38. </table></center>
  39.  
  40. </body>
  41. </html>


Y este es el codigo del image.php
Código PHP:
/* Script image.php */

function conectarse($host,$usuario,$password,$BBDD){
   
$link=mysql_connect($host,$usuario,$password) or die (mysql_error());
   
mysql_select_db($BBDD,$link) or die (mysql_error());
   return 
$link;
}

$link=conectarse("localhost","user","pass","DB"); 

$id $_REQUEST['id']; 
 
$sql "SELECT * FROM detalles WHERE id = '$id';";
 
$res mysql_query($qry);
 
$tipo mysql_result($res0"filetype");
 
$contenido mysql_result($res0"imagen");

 
header("Content-type: $tipo");
 print 
$contenido
DE verdad según yo ya te habían dicho cual era la solución pero bueno aquí te la pongo prácticamente, aquí esta la solución ok?
  #7 (permalink)  
Antiguo 03/09/2010, 10:02
 
Fecha de Ingreso: agosto-2010
Mensajes: 2
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Mostrar imagen blob en tabla

tengo el mismo problema, e probado distintos codigos y nada
me sale una x en rojo, si alguien me pudiera ayudar
<body>
<?PHP
//$base="rinconastur";
//$tabla="fotos";
$link = mysql_connect("localhost","veterin3","04091975")
or die("Could not connect to database!");
mysql_select_db("veterin3_prueba")
or die("Could not select database!"); // tu_bd es el nombre de la Base de datos .. por siaca.

$resultado = mysql_query ("select * from imagenf ")
or die ("No se pudo ejecutar la consulta1");
//$conexion=mysql_connect ("localhost","pepe","pepa");
//mysql_select_db ($base, $conexion);
//$sacar = "SELECT * FROM ".$tabla;
//$resultado = mysql_query($sacar,$conexion);
?>
<?PHP
while ($registro = mysql_fetch_array($resultado)){
print "<center>Titulo de la imagen: ".$registro['nombre']."<br>";
// echo '<img src="'.$registro['imagen2'].'"></img>';
print "<img src='ver_foto.php?n=".$registro['num_ident']."'><br>"; print "Tamaño de la imagen: ".$registro['tamano']." bytes</center>";

}
mysql_close();
?>
</body>
</html>
PARECIERA QUE NO SE ESTUVIERA EJECUNTADO LA CANEXION CON ver_foto.php

otro codigo
$id=$_REQUEST['n'];
//$numero=$_POST['n'];
//$base="rinconastur";
//$tabla="fotos";
echo "EXPEDIENTE2:". $numero . "<br>";
$link = mysql_connect("localhost","veterin3","04091975")
or die("Could not connect to database!");
mysql_select_db("veterin3_prueba")
or die("Could not select database!"); // tu_bd es el nombre de la Base de datos .. por siaca.

$resultado = mysql_query ("select * from imagenf WHERE num_ident=$id ")
or die ("No se pudo ejecutar la consulta");

//$conexion=mysql_connect ("localhost","pepe","pepa");
//mysql_select_db ($base, $conexion);
// $sacar = "SELECT * FROM ".$tabla." WHERE (num_ident=$numero)" ;
//$resultado = mysql_query($sacar,$conexion);
while ($registro = mysql_fetch_array($resultado)){
$tipo_foto=$registro['formato'];
$tipo_foto=$rw['mime'];
header("Content-type: $tipo_foto");
//echo '<img src="' . $registro['imagen2'] . '"/>';
// echo <img src="http://localhost/" . $registro['imagen'] . >;


echo $registro['imagen2'];


}
mysql_close();
?>

Etiquetas: blob, tablas
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 02:16.