Foros del Web » Programando para Internet » PHP »

Como se muestra una imagen desde una BD??

Estas en el tema de Como se muestra una imagen desde una BD?? en el foro de PHP en Foros del Web. Buenas. tengo una serie de campos en una base de datos. uno de ellos se llama foto, y quiero que alli se encuentre una imagen ...
  #1 (permalink)  
Antiguo 16/01/2003, 07:41
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Como se muestra una imagen desde una BD??

Buenas. tengo una serie de campos en una base de datos. uno de ellos se llama foto, y quiero que alli se encuentre una imagen y sea mostrada en una tabla. he leido que tengo que declarar el campo foto como blob. pero de que forma inserto el la foto en la BD??

Gracias
  #2 (permalink)  
Antiguo 16/01/2003, 09:19
androide
Invitado
 
Mensajes: n/a
Puntos:
Hola . creo que te puedo ayudar en algo ...

De acuerdo, deberás usar campo Blob para guardar la img, veo que no preguntas como haz de hacer para manejar la parte de la db, aca te colaboro con un code muy bueno para cargar y "mostrar " tu foto desde la bd ...

1. deberás crear un campo de archivo .. con esto lo podrás hacer ...

<body bgcolor="#FFFFFF" text="#000000">
<form name="form1" enctype="multipart/form-data" method="post" action="cargar_imagen.php">
<input type="file" name="file">

2. El code a continuación es el que se encargará de subir la img a la bd ...

------- agregar imagen.php -------

<?

$link=mysql_connect("parametros","parametros","par ametros");
mysql_select_db("parametros",$link);
//echo "<BR>".$userfile; //nombre del archivo de la imagen temporal
//echo "<BR>".$userfile_name; //nombre del archivo
//echo "<BR>".$userfile_size; //tamaño
//echo "<BR>".$userfile_type; //tipo
if ($userfile!="none" && $userfile!="")
{
if ($userfile_type=="image/jpeg" || $userfile_type=="image/pjpeg" || $userfile_type=="image/gif" || $userfile_type=="image/bmp")
{
$info=getimagesize($userfile);
//echo "<BR>".$info[0]; //anchura
//echo "<BR>".$info[1]; //altura
//echo "<BR>".$info[2]; //1-GIF, 2-JPG, 3-PNG
//echo "<BR>".$info[3]; //cadena de texto para el tag <img
$x=addslashes(fread(fopen($userfile,"r"),filesize( $userfile)));


$result=mysql_query("INSERT INTO parametro (anchura,altura,tipo,imagen) VALUES (".$info[0].",".$info[1].",'$userfile_type','$x')",$link);
$id=mysql_insert_id();
echo "La siguiente es la imagen que enviaste :<BR><BR>";
echo "<center><img src='mostrar_imagen.php?id=".$id."'></center>";
}else{
$error="Error al tratar de cargar la imágen, esta debe ser JPG, GIF o BMP.";
}
}else{
if ($userfile!="")
$error="No haz seleccionado ninguna imagen...";
}
mysql_close($link);
if ($error!="")
{
echo "</center><P><font face='Arial' size=2 color='#ff0000'> Error: ".$error."</font><br>";
}
?>

y el siguiente es el code que te servirá para MOSTRAR tu foto desde la bd ...

----- mostrar_imagen.php -----

<?

$link=mysql_connect("parametros","parametros","par ametros");

mysql_select_db("parametros",$link);

$result=mysql_query("SELECT * FROM parametro WHERE id=$id",$link);

$row=mysql_fetch_array($result);

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

echo $row["imagen"];

?>

Espero haberte ayudado ...

La forma en que debes llamar a tu img es la siguiente :

http://tu_dom.com/mostrar_imagen.php?id=1 ó 2 ó 3 etc ....

Si queres que tu foto salga dentro de una tabla deberás hacerle algunas modificaciones a mostrar_imagen.php

bye, cuidate ....

Androide ...

pd. el code cargar_imagen.php no funcionará si no cuenta con mostrar_imagen.php ....
  #3 (permalink)  
Antiguo 16/01/2003, 10:52
Avatar de luigivirgo  
Fecha de Ingreso: enero-2003
Ubicación: Toluka mejiko
Mensajes: 150
Antigüedad: 21 años, 3 meses
Puntos: 0
PK NO GUARDAR LA RUTA EN LA BD

Feicidades por el kodigo de arriba esta muy bueno

otra forma de dispobner de las imagenes es ke solo guardes en la base de dtos la ruta de la imagen y no toda la imagen komo tal
esto te mejoraria un poko el rendimiento del tiempo de acceso a tu servidor pk ya solo deskargagarias la imagen de su hubikacion ya no tendrias ke hacer la konsulta de jalar todas las imgenes de la base de datos ke a la larga kon imagenes muy grandes se hara pesado y tu base de datos se hara grandisima, kon mas tiempo de respuesta del manejador de la base de datos al php y de ahi al browser


Saludos
__________________
no olvides visitar tu propia komputadora en
http://computadora.de
http://paginaweb.de/luigivirgo/luis.jpg
  #4 (permalink)  
Antiguo 16/01/2003, 13:57
androide
Invitado
 
Mensajes: n/a
Puntos:
ok LuigiVirgo ... tenés toda la razón .... .. pero fíjate que lo que le interesa a FerranWeb es ...

Cita:
pero de que forma inserto la foto en la BD??
bye .,. cuidense los dos ....

Próximamente ... http://www.xicox.com ... Evolution Design ...
  #5 (permalink)  
Antiguo 16/01/2003, 16:37
Avatar de execon  
Fecha de Ingreso: enero-2002
Ubicación: Temuco
Mensajes: 179
Antigüedad: 22 años, 2 meses
Puntos: 0
Creo ke no necesita guardar la foto en la bd. Lo ke kiere es leer desde una base de datos y cargarla en una tabla. Para eso Voto por almacenar la ruta, en vez de crear el campo blob. El primero es texto y pesa menos.

Saludoz
__________________
----------------------------------
APP Developer
[email protected]
----------------------------------
  #6 (permalink)  
Antiguo 16/01/2003, 16:42
androide
Invitado
 
Mensajes: n/a
Puntos:
Ok ... tenes razón ... que FerranWeb elija ....

bye ...
  #7 (permalink)  
Antiguo 16/01/2003, 17:02
Avatar de execon  
Fecha de Ingreso: enero-2002
Ubicación: Temuco
Mensajes: 179
Antigüedad: 22 años, 2 meses
Puntos: 0
hahaha :D retorna el balón a su dueño.
__________________
----------------------------------
APP Developer
[email protected]
----------------------------------
  #8 (permalink)  
Antiguo 17/01/2003, 05:36
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Gracias a los tres por vuestra ayuda. La verdad es que el código de androide es buenisimo! Me ha ido genial para otra aplicacion que tenia a medias, en la que un administrador sube una noticia y una imagen para esa noticia.

Ahora bien, la segunda opcion que proponeis tanto luigivirgo como execon es la que necesitaria ahora. En ese caso, que tipo de tabla ha de ser, un blop igual? o un varchar normal con la ruta? me podeis decir exactamente que hay que poner de ruta para que funcione??


Salu2, y muchisimas gracias!!
  #9 (permalink)  
Antiguo 17/01/2003, 06:57
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
El campo que necesitas en tu BD es un campo tipo BLOD (mejor incluso LOGBLOD dependiendo del tamaño de tus archivos) ...

Aquí tienes un tutorial completo sobre el tema:
http://www.phpbuilder.com/columns/fl...3?print_mode=1

Un saludo,
  #10 (permalink)  
Antiguo 17/01/2003, 09:37
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Gracias Cluster, este aspecto ya lo tengo hecho. Ahora mi duda es, como puedo tener una ruta en un campoo de mi bd? es decir, como comentaba luigivirgo, ahora me interesa tener simplemente la ruta de la imagen y mostrarla. De que manera introduzco la ruta en la BD? que tipo de campo debo de tener?

Gracias!
  #11 (permalink)  
Antiguo 17/01/2003, 10:18
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
He conseguido insertar la imagen en la BD. He leido la web que me habeis aconsejado, y he podido ponerla. En la BD tengo los siguientes campoos:

img_adjunta, binarios,nombre_archivo,tamaño_archivo, tipo_archivo.

Mi problema es, como recupero la imagen?? es decir, tengo una tabla en la que me muetsra los datos. Que campo he de recuperar con el echo para mostrar la imagen?? tengo lo siguiente:

$sql= "SELECT titulo,texto,hab,superficie,precio,localizacion FROM promociones Where localizacion = '$localizacion' ";


$resultados = mysql_query($sql);
$registros = mysql_query($sql1);

$query = "select binarios,tipo_archivo from promociones where localizacion=$localizacion";
$result = MYSQL_QUERY($query);

$data = MYSQL_RESULT($result,0,"binarios");
$type = MYSQL_RESULT($result,0,"tipo_archivo");

Header( "Content-type: $type");

y en la tabla donde va la foto tengo echo $data;, pero no me muestra nada?? que me falta por hacer?

Salu2 y Gracias
  #12 (permalink)  
Antiguo 17/01/2003, 10:44
Avatar de execon  
Fecha de Ingreso: enero-2002
Ubicación: Temuco
Mensajes: 179
Antigüedad: 22 años, 2 meses
Puntos: 0
Utiliza un campo de texto normal varchar(255). Para extraer la ruta en tu página pones:

<img src="<? print($registro["rutafoto"]); ?>" alt="nombrefoto">

o como sea ke lo uses.

Un saludo
__________________
----------------------------------
APP Developer
[email protected]
----------------------------------
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 18:40.