Foros del Web » Programando para Internet » PHP »

Mostrar imagen de bd

Estas en el tema de Mostrar imagen de bd en el foro de PHP en Foros del Web. Hola tengo un problema al mostrar una imagen de una base de datos. Tengo echo un codigo que sube a una base de datos una ...
  #1 (permalink)  
Antiguo 25/02/2010, 02:45
 
Fecha de Ingreso: noviembre-2008
Mensajes: 75
Antigüedad: 15 años, 5 meses
Puntos: 0
Mostrar imagen de bd

Hola tengo un problema al mostrar una imagen de una base de datos. Tengo echo un codigo que sube a una base de datos una imagen. Esto lo realiza correctamente, pero cuando intento mostrar la imagen me sale la ruta,es decir, el siguiente mensaje http://localhost/cursophp/pruebas/imagen.php?id=12(id es el identificador de la fila de la bd donde se ha guardado). El codigo que tengo para mostrar la imagen es el siguiente:

<?php
@mysql_connect('localhost','root','') or die('No se puede conectar con el servidor mysql');

@mysql_select_db('imagenes') or die('No se puede seleccionar la base de datos especificada');

$datos = ($_GET['id']) ? 'id=' . mysql_escape_string($_GET['id']) : "nombre='" . mysql_escape_string($_GET['nombre']) . "'";

$resultado = @mysql_query("SELECT imagen,tipo FROM subir_imagenes WHERE " . $datos);

$imagen = @mysql_fetch_assoc($resultado) or die('Imagen inexistente');

header("Content-type: $imagen[tipo]");

echo $imagen['imagen'];
?>

Haber si me podeis ayudar. Gracias
  #2 (permalink)  
Antiguo 25/02/2010, 06:11
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Mostrar imagen de bd

si te sale la ruta, es porque eso es lo que estas guardando, no el binario de la imagen:

http://mrarrowhead.com/index.php?pag..._mysql_php.php
  #3 (permalink)  
Antiguo 25/02/2010, 06:15
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: Mostrar imagen de bd

Y no es más fácil ???????:
Código PHP:
Ver original
  1. echo "<img src='".$imagen['imagen']."' border='0'>";
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #4 (permalink)  
Antiguo 25/02/2010, 06:19
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Mostrar imagen de bd

depende del caso... si quiere almacenar las imágenes en el servidor , si, seria mas facil asi, pero si quiere tenerlas en binario en su base de datos y no físicamente es otro proceso!
__________________
More about me...
~ @rhyudek1
~ Github
  #5 (permalink)  
Antiguo 25/02/2010, 06:20
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: Mostrar imagen de bd

Ya, pero por lo que se ve, guarda la ruta, no la imagen, y dice que está todo correcto, ergo la lógica......
Siento contradecir hidek1, pero guardar una imagen en binario en la bd no hace más que estorbar. Para mí es una inutilidad. (supongo que tendrá razones para hacer de este modo, pero no las entiendo xD)

Saludos!
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #6 (permalink)  
Antiguo 25/02/2010, 06:24
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Mostrar imagen de bd

x'D
claro si es por lógica se ve q no le funciona bien pero si te fijas la ruta q guardo no termina en .jpg ni nada parecido.. por eso no se sabe bien q es en realidad lo q quiere..
por otro lado lo de guardar las imágenes como binario en realidad no sirve de mucho en general.. pero si son imágenes pequeñas puedes salir ganando muchas veces ;)

PD: imaginate tienes un sistema en donde haces respaldos diarios y en el cual los usuarios usan avatares pequeños.. 40x40 por dar un ejemplo.. te sale mucho mas rapido respaldarlos con un click en el sql que estar entrando al ftp y copiar carpetas y archivos.. piensa q puede q tpoco sean solo avatares.. si no mas cosas.. o quiza interactuar con algun juego etc.. en realidad hay muchos motivos
__________________
More about me...
~ @rhyudek1
~ Github
  #7 (permalink)  
Antiguo 25/02/2010, 06:28
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: Mostrar imagen de bd

La verdad es que tienes razón. Si son ficheros pequeños te ahorras trabajar con ficheros .

Hasta que se explique el usuario no podemos hacer nada.

Saludos!
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #8 (permalink)  
Antiguo 25/02/2010, 14:23
 
Fecha de Ingreso: noviembre-2008
Mensajes: 75
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Mostrar imagen de bd

Hola, mi idea es hacer una autentificación de usuario en una pagina web, y cuando el usuario entre a su zona privada le aparezca su imagen. Por lo tanto lo que quiero es que dicha imagen esté asociada a dicho usuario y por ello la utilizo en la bd. Como me recomendais hacer esto? Gracias
  #9 (permalink)  
Antiguo 25/02/2010, 14:24
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Mostrar imagen de bd

guardas la imagen en una carpeta de tu servidor y en la base de datos solo guardas el nombre de la imagen
y luego la llamas desde la base de datos agregandole la ruta con la etiqueta <img />
saludos!
__________________
More about me...
~ @rhyudek1
~ Github
  #10 (permalink)  
Antiguo 25/02/2010, 15:47
 
Fecha de Ingreso: febrero-2010
Mensajes: 57
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Mostrar imagen de bd

Hola puedes cambiar las variables en el siguiente código.... y compararlo con lo que estás haciendo...

<?php

$explod = explode(".", $name);
$ext = $explod[sizeof($explod)-1];
$base = "prueba";
$conecta = @mysql_connect("localhost","root","pass") or die('Error, conexión falló...');
$select = @mysql_select_db($base, $conecta);
$sql = "SELECT contenido FROM t_prueba_cont WHERE id_contenido ='".$id_conte."'";
$resultado = @mysql_query($sql);
if (mysql_num_rows($resultado)== 1)
{
$dato_binario = mysql_result($resultado, 0, "contenido");
}
else
{
echo "No está traiendo nada el query...";
}

if ((eregi("jpg",$ext))||(eregi("png",$ext))||(eregi( "gif",$ext))||(eregi("bmp",$ext))||(eregi("txt",$e xt))||(eregi("doc",$ext))||(eregi("xls",$ext))||(e regi("ppt",$ext))||(eregi("pps",$ext))||(eregi("pd f",$ext)))
{
header("Content-type: $type");
header("Content-Length: $size");
header("Content-Disposition: attachment; filename= $name");
header("Content-Description: PHP Generated Data");
header("Content-Transfer-Encoding: binary");
echo $dato_binario;
}
mysql_close ($conecta);
?>

Etiquetas: bd
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 01:23.