Foros del Web » Programando para Internet » PHP »

Motrar imagen guardada en BLOB en una página php

Estas en el tema de Motrar imagen guardada en BLOB en una página php en el foro de PHP en Foros del Web. Tengo un problema, estoy haciendo una galeria de imagenes en php, las imagenes están guardadas en una BD mySQL y las quiero extraer para mostrarlas ...
  #1 (permalink)  
Antiguo 12/07/2011, 11:46
 
Fecha de Ingreso: julio-2011
Ubicación: Yucatán
Mensajes: 8
Antigüedad: 12 años, 9 meses
Puntos: 1
Motrar imagen guardada en BLOB en una página php

Tengo un problema, estoy haciendo una galeria de imagenes en php, las imagenes están guardadas en una BD mySQL y las quiero extraer para mostrarlas en la galeria pero no se porque no me muestra la imagen, me muetra los nombres de las imagenes guardadas pero no se ven las imagenes les presento el codigo:

index.php:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> Prueba de galeria </title>

<script type="text/javascript" src="jquery.js"></script>
<style type="text/css">
body{
margin:0;
padding:0;
font:normal 12px Arial, Helvetica, sans-serif
}
#content{
width:700px;
margin:20px auto;
height:550px;
border:6px solid #F3F3F3;
padding-top:10px;
overflow: scroll;
}
#upload{
padding:12px;
font:bold 16px Arial, Helvetica, sans-serif;
text-align:center;
color:#096;
width:150px;
display:block;
-moz-border-radius:5px;
-webkit-border-radius:5px;
margin:0 auto;
text-decoration:none;
}
#gallery{
list-style:none;
margin:20px 0 0 0;
padding:0
}
#gallery li{
display:block;
float:left;
width:155px;
height:160px;
background:#9AF099;
border:1px solid #093;
text-align:center;
padding:6px 0;
margin:5px 0 5px 14px
}
#gallery li img{
width:145px;
height:140px
}

</style>

<script type="text/javascript">
$(document).ready(function(){
// Listar fotos que hay en mi tabla
$("#gallery").load("procesa.php?action=listFotos ") ;
});

</script>
</head>

<body>

<div id="content">
<a id="upload">Galeria</a>
<ul id="gallery">
<!-- Cargar Fotos -->
</ul>
</div>

</body>
</html>


procesa.php:
<?php

define("DBHOST", "localhost");
# nombre de la base de datos
define("DBNAME", "mysql");
# Usuario de base de datos
define("DBUSER", "******");
# Password de base de datos
define("DBPASSWORD", "******");
$link = mysql_connect(DBHOST, DBUSER, DBPASSWORD) or die(mysql_error($link));;
mysql_select_db(DBNAME, $link) or die(mysql_error($link));

if($_GET['action'] == 'listFotos'){

$query = mysql_query("SELECT * FROM tabla ORDER BY idfoto DESC", $link)or die(mysql_error($link));
while($row = @mysql_fetch_array($query))
{
$id=$row["idfoto"];
echo '<li>
<img src="verblob.php?idfoto=$id&tam=2"/>
<span>'.$row['nombre'].'</span>
</li>';
}
}
?>

verblob.php:
<?php

// Nivel de errores
error_reporting(E_ALL);

// Constantes
# Servidor de base de datos
define("DBHOST", "localhost");
# nombre de la base de datos
define("DBNAME", "mysql");
# Usuario de base de datos
define("DBUSER", "******");
# Password de base de datos
define("DBPASSWORD", "******");

// Parámetros para recuperar la imagen
# Recuperamos el parámetro GET con el id único de la foto que queremos mostrar
$idfoto = (isset($_GET["idfoto"])) ? $_GET["idfoto"] : exit();
# Recuperamos el parámetro GET para elegir entre la miniatura o la foto real
$tam = (isset($_GET["tam"])) ? $_GET["tam"] : 1;

// Escojemos la foto real o la miniatura según la variable $tam
switch($tam) {
case "1":
$campo = "foto";break;;
case "2":
$campo = "thumb";break;;
default:
$campo = "foto";break;;
}

// Recuperamos la foto de la tabla
$sql = "SELECT $campo, mime
FROM tabla
WHERE idfoto= $idfoto";

# Conexión a la base de datos
$link = mysql_connect(DBHOST, DBUSER, DBPASSWORD) or die(mysql_error($link));;
mysql_select_db(DBNAME, $link) or die(mysql_error($link));

$conn = mysql_query($sql, $link) or die(mysql_error($link));
$datos = mysql_fetch_array($conn);

// La imagen
$imagen = $datos[0];
// El mime type de la imagen
$mime = $datos[1];

// Gracias a esta cabecera, podemos ver la imagen
// que acabamos de recuperar del campo blob
header("Content-Type: $mime");
// Muestra la imagen
echo $imagen;
?>

alguien ke me ayude porfa!!!!
  #2 (permalink)  
Antiguo 12/07/2011, 11:48
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Motrar imagen guardada en BLOB en una página php

Es por las comillas, las comillas simples no interpretan las variables, dentro, te invito a leer el siguiente tema:
http://www.forosdelweb.com/f18/como-...1/#post2414268

Saludos.
  #3 (permalink)  
Antiguo 12/07/2011, 12:08
 
Fecha de Ingreso: julio-2011
Ubicación: Yucatán
Mensajes: 8
Antigüedad: 12 años, 9 meses
Puntos: 1
Respuesta: Motrar imagen guardada en BLOB en una página php

:s ke parte de las comillas porque ya le he movido el orden y alternado las formas de uso y sigue sin mostrar la imagen o me marca error Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' :s te agradeceria si me ayudaras :s yo digo ke el error esta en:

echo '<li>
<img src="verblob.php?idfoto=$id&tam=2"/>
<span>'.$row['nombre'].'</span>
</li>';
  #4 (permalink)  
Antiguo 12/07/2011, 12:14
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: Motrar imagen guardada en BLOB en una página php

Código PHP:
echo '<li>
<img src="verblob.php?idfoto='
.$id.'&tam=2"/>
<span>'
.$row['nombre'].'</span>
</li>'

__________________
aconcaguaestudio.com
  #5 (permalink)  
Antiguo 12/07/2011, 12:17
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 2 meses
Puntos: 128
Respuesta: Motrar imagen guardada en BLOB en una página php

Como se te ocurre guardar la imagen como blob en la base de datos, creo que primero debieras leer e informarte como utilizar optimamente Php y MySql.



Nunca recomendado esta forma de utilizarlo, te sugiero que guardes solo la ruta de tu archivo (foto) en la base de datos, primer punto : no generas peso innecesario en tu base de datos, segundo punto : es mas rapido una ruta, tercera opcion : tienes manejo directo de los archivos sin ingresar a la base de datos .......
__________________
Si no vivimos como pensamos, pronto empezaremos a pensar como vivimos.
Más vale un Gracias sincero, que un número que aumente "popularidad" ¬¬°

Universidad de chile, campeón
  #6 (permalink)  
Antiguo 12/07/2011, 12:29
 
Fecha de Ingreso: julio-2011
Ubicación: Yucatán
Mensajes: 8
Antigüedad: 12 años, 9 meses
Puntos: 1
Respuesta: Motrar imagen guardada en BLOB en una página php

grax por tu respuesta ivia montes pero aun asi no sale la imagen :s maldicion!!!! :s serà que el echo del verblob.php tenga algo ke modifikar???? :s
y bUllan9ebrio si por mi fuera lo aria solo con rutas pero me pidieron ke la aga asi :s aunke sino encuentro la solucion tendre ke aserlo por rutas
  #7 (permalink)  
Antiguo 12/07/2011, 13:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Motrar imagen guardada en BLOB en una página php

Prueba usar una herramienta como Firebug para Firefox, con ella puedes ver las llamadas AJAX y ver que respuesta te da el servidor, así puedes ver si se estan formando correctamente tus <li> o no.

Saludos.
  #8 (permalink)  
Antiguo 12/07/2011, 14:17
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: Motrar imagen guardada en BLOB en una página php

si te dicen que tienes que guardarla en la BD te tienes que ajustar, al final son los que te pagan, vamos a resolverlo entre todos
haz lo que te dice GatorV, es de mucha ayuda el firebug
revisa la respuesta ajax a ver, y dinos
__________________
aconcaguaestudio.com
  #9 (permalink)  
Antiguo 13/07/2011, 07:25
 
Fecha de Ingreso: julio-2011
Ubicación: Yucatán
Mensajes: 8
Antigüedad: 12 años, 9 meses
Puntos: 1
Respuesta: Motrar imagen guardada en BLOB en una página php

le instale el firebug para probar y sorpresa ke me llevo ahora :s akabo de llegar y abrir para probar y ya kedo :S solo prendi mi pc y abri para xekar y salio listo :D grax por su ayuda!!! el error si era de comillas y lo otro no se de ke fue :s
En fin les comparto el codigo por si a alguien mas le puede servir :D

Código PHP:
<?php 

 define
("DBHOST""localhost");
  
# nombre de la base de datos
  
define("DBNAME""mysql");
  
# Usuario de base de datos
  
define("DBUSER""******");
  
# Password de base de datos
  
define("DBPASSWORD""******");
$link mysql_connect(DBHOSTDBUSERDBPASSWORD) or die(mysql_error($link));;
  
mysql_select_db(DBNAME$link) or die(mysql_error($link));

if(
$_GET['action'] == 'listFotos'){
    
    
$query mysql_query("SELECT * FROM tabla ORDER BY idfoto DESC"$link)or die(mysql_error($link));
    while(
$row = @mysql_fetch_array($query))
    {
        
$id=$row['idfoto'];
        
    echo 
'<li>
            <img src="verblob.php?idfoto='
.$id.'&tam=2"/>
            <span>'
.$row['nombre'].'</span>
         </li>'

    }
}
?>

Etiquetas: blob, html, mysql, página, tabla, variables
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 22:26.