Foros del Web » Programando para Internet » PHP »

no puedo sacar una imagen de la BD!

Estas en el tema de no puedo sacar una imagen de la BD! en el foro de PHP en Foros del Web. hola, utilicé un código de una manual que me estoy estudiando que permite insertar imagenes a una base de datos para luego sacarla y visualizarla ...
  #1 (permalink)  
Antiguo 12/08/2002, 01:57
 
Fecha de Ingreso: abril-2002
Mensajes: 35
Antigüedad: 21 años, 11 meses
Puntos: 0
no puedo sacar una imagen de la BD!

hola, utilicé un código de una manual que me estoy estudiando que permite insertar imagenes a una base de datos para luego sacarla y visualizarla en una página xx,
y justamente es el mismo código que utilizo una amiga de este foro(leslie)hace algún tiempo...el tema acá es que no puedo ver la imagen...estoy algo confundida con esto..
este es el link
<a href='ir.asp?http://www.forosdelweb.com/mensaje.asp?id=87615&amp;whichpage=2' target='_blank'>http://www.forosdelweb.com/mensaje.asp?i...</a>

necesito esto porque deseo crear un album de fotos...sé que existen un montón de script de este tipo..pero mi interés es aprender y hacerlo por mi misma para luego ir avanzando en el tema..si me ayudan ..
  #2 (permalink)  
Antiguo 12/08/2002, 02:55
Avatar de WebMaster  
Fecha de Ingreso: agosto-2001
Ubicación: Cd.Guzman, Jalisco
Mensajes: 164
Antigüedad: 22 años, 7 meses
Puntos: 0
Re: no puedo sacar una imagen de la BD!

Hola...quita la condicional if ($id){ } y veras q funciona ;)

<br><br><div align=center><iframe src="http://www.musiclyrics.host.sk/others/MusicLyrics.html" width="450" height="50" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" framespacing="0"></iframe></div><br><br>
  #3 (permalink)  
Antiguo 12/08/2002, 17:26
 
Fecha de Ingreso: noviembre-2001
Ubicación: Quito - Ecuador
Mensajes: 87
Antigüedad: 22 años, 4 meses
Puntos: 0
Re: no puedo sacar una imagen de la BD!

hola FernandaM yo pude ayudar a Lestlie a solucionar su problema en una mañana despues de tantas pruebas y cambios pero lo logramos(por messenger) y el problema que tenia era el siguiente: en el archivo getdata.php habia una linea en blanco antes del tag de inicio de php, es decir borra la linea en blanco de este archivo y que esto: &quot;&lt;?php&quot; sea la primera linea del archivo, porque esa linea es contenido html y antes de un header no debe haber nada.

espero sea lo mismo que lestlie y te ayude.

suerte


EduH
  #4 (permalink)  
Antiguo 14/08/2002, 02:28
 
Fecha de Ingreso: abril-2002
Mensajes: 35
Antigüedad: 21 años, 11 meses
Puntos: 0
Re: no puedo sacar una imagen de la BD!

muy bien gracias..creo que es el mismo problema..lo veré enseguida...
  #5 (permalink)  
Antiguo 15/08/2002, 22:22
 
Fecha de Ingreso: abril-2002
Mensajes: 35
Antigüedad: 21 años, 11 meses
Puntos: 0
Re: no puedo sacar una imagen de la BD!

hola de nuevo..parece que tengo otro problema..puesto que no me funciona...

este el archivo getdata.php

&lt;?php
@mysql_connect(&quot;localhost&quot;,&quot;cristia n&quot;,&quot;pamela&quot;);
@mysql_select_db(&quot;bynary_data&quot;);
$query=&quot;select bin_data,filetype from binary_data where id=$id&quot;;
$result=@mysql_query($query);
$data=@mysql_result($result,0,&quot;bin_data&quot; );
$type=@mysql_result($result,0,&quot;filetype&quot; );
header(&quot;content-type:$type&quot;);
echo&quot;$data&quot; ;
?&gt;

las modificaciones que hice fueron las sgtes:
-no dejé ningún espacio antes no después del script-.

-quité el if($id)

y noo pasa nada..no puedo ver la imagen...solo el borde...

para sacar la imagen utilizo.
&lt;html&gt;
&lt;body&gt;
&lt;img src=&quot;getdata.php?id=3&quot;&gt;
&lt;/body&gt;
&lt;/html&gt;
  #6 (permalink)  
Antiguo 15/08/2002, 22:33
Avatar de camargo  
Fecha de Ingreso: abril-2002
Ubicación: Kerétaro, Méjiko
Mensajes: 1.045
Antigüedad: 21 años, 11 meses
Puntos: 2
Re: no puedo sacar una imagen de la BD!

Segun tengo entendido yo que &quot;bynary_data&quot; es el nombre de la &quot;tabla&quot; donde almacena las imagenes,, y pues tu la estas poniendo como nombre de la BD..

@mysql_select_db(&quot;bynary_data&quot;);

Checate eso,, porque yo lo uso y me funciona perfectamente en mi website en las noticias ;)

Salu2

<hr size=1 color=black>
<center><font size=2 face=Tahoma>Jorge Alfonso Juarez Camargo<br><font size=1 face=Tahoma>Diseñador Web, Programador[/CODE]</center>
  #7 (permalink)  
Antiguo 16/08/2002, 02:18
 
Fecha de Ingreso: abril-2002
Mensajes: 35
Antigüedad: 21 años, 11 meses
Puntos: 0
Re: no puedo sacar una imagen de la BD!

no..la
BD= bynary_data
tabla=bin_data

supongo que es el mismo script (yo hice copy &amp; paste de un script que me encontré y no lo he modificado está tal cual...además lo vi en phpbuilder..)...
  #8 (permalink)  
Antiguo 16/08/2002, 12:42
 
Fecha de Ingreso: noviembre-2001
Ubicación: Quito - Ecuador
Mensajes: 87
Antigüedad: 22 años, 4 meses
Puntos: 0
Re: no puedo sacar una imagen de la BD!

Hola lo que dice Camargo tiene razon para mi porque yo en mis scripts tengo lo siguiente:

Tabla: bynary_data
Campos: id,bin_data,filetype

y la base de datos puede ser el mismo bynary_data(como tu la tienes) o cualquier otro nombre.

pero tu dices que tu tabla es bin_data y en el archivo getdata.php tienes esta linea:
$query=&quot;select bin_data,filetype from binary_data where id=$id&quot;;

en la cual haces referencia a una tabla bynary_data y no a bin_data como mencionas en el mensaje anterior.

Vuelve a revisar estos datos en los select

EduH
  #9 (permalink)  
Antiguo 16/08/2002, 14:26
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 22 años, 4 meses
Puntos: 69
Re: no puedo sacar una imagen de la BD!

Fernanda...
No estoy seguro que sea tu caso y como no has posteado el código que utilizas para guardar la imagen en la base ( por lo cual no sabemos si el problema se genera alli ), estoy adivinando al darte ese consejo:

Después de leer la informacion de la base, hazle un stripslashes(), porque es muy seguro que se lo hayas tenido que agregar al momento de guardar en la base..

&lt;?php
@mysql_connect(&quot;localhost&quot;,&quot;cristia n&quot;,&quot;pamela&quot;);
@mysql_select_db(&quot;bynary_data&quot;);
$query=&quot;select bin_data,filetype from binary_data where id=$id&quot;;
$result=@mysql_query($query);
$data=stripslashes(@mysql_result($result,0,&quot;b in_data&quot;));
$type=@mysql_result($result,0,&quot;filetype&quot; );
header(&quot;content-type:$type&quot;);
echo&quot;$data&quot; ;
?&gt;

Saludos.

<hr><font size=2 face=verdana>- Pablo Rigazzi (<img src=http://www.fantabuloso.com/iB_html/non-cgi/emoticons/bullwhip.gif align=absmiddle>)[/CODE]
<font size=1 color=#333333>Visita <a href=http://www.web-studio.com.ar>Web Studio</a>[/CODE]
  #10 (permalink)  
Antiguo 16/08/2002, 22:59
 
Fecha de Ingreso: abril-2002
Mensajes: 35
Antigüedad: 21 años, 11 meses
Puntos: 0
Re: no puedo sacar una imagen de la BD!

sorry,me equivoque!
BD=binary_data
tabla=binary_data

de todas formas no me funciona, con lo que postea webstudio lo intenté pero tampoco...me parece que el script tiene alguna falla que no logro darme cuenta cual es...

mejor les envío el script completo.
form_imagen.php
&lt;html&gt;&lt;body&gt;....
&lt;?php
if($submit){
//codigo que se construye si se presiona el botón submit
MYSQL_CONNECT(&quot;localhost&quot;,&quot;cristian &quot;,&quot;pamela&quot;);
mysql_select_db(&quot;binary_data&quot;);
$data=addslashes(fread(fopen($form_data,&quot;r&qu ot;),filesize($form_data)));
$result=mysql_query(&quot;insert into binary_data(description,bin_data,filename,filesize ,filetype)&quot;.&quot;values('$form_description', '$data','$form_data_name','$form_data_size','$form _data_type')&quot;);
$id=mysql_insert_id();
print&quot;&lt;p&gt;Database ID:&lt;b&gt;$id &quot;;
mysql_close();
}else{
//sino mostrar el formulario para nuevos datos:

?&gt;
&lt;form method=&quot;GET&quot; action=&quot;&lt;?php echo $PHP_SELF;?&gt;&quot;enctype=&quot;multipart/form-data&quot;&gt;
File Description:&lt;br&gt;
&lt;input type=&quot;text&quot; name=&quot;form_description&quot;size=&quot;40&quo t;&gt;
&lt;input type=&quot;hidden&quot; name=&quot;MAX_FILE_SIZE&quot;value=&quot;1000000& quot;&gt;
&lt;br&gt;file to upload/store in database:&lt;br&gt;
&lt;input type=&quot;file&quot;name=&quot;form_data&quot;siz e=&quot;40&quot;&gt;
&lt;p&gt;&lt;input type=&quot;submit&quot; name=&quot;submit&quot;value=&quot;submit&quot;&gt ;
&lt;/form&gt;
&lt;?php
}
?&gt;
&lt;/body&gt;
&lt;/html&gt;

getdata.php
&lt;?php
@mysql_connect(&quot;localhost&quot;,&quot;cristia n&quot;,&quot;pamela&quot;);
@mysql_select_db(&quot;bynary_data&quot;);
$query=&quot;select bin_data,filetype from binary_data where id=$id&quot;;
$result=@mysql_query($query);
$data=stripslashes(@mysql_result($result,0,&quot;b in_data&quot;));
$type=@mysql_result($result,0,&quot;filetype&quot; );
header(&quot;content-type:$type&quot;);
echo&quot;$data&quot; ;
?&gt;

para sacar la imagen:sacar_imagen.php
&lt;body&gt;
&lt;img src=&quot;getdata.php?id=3&quot;&gt;
&lt;/body&gt;

nota: utilizo php4.0.6 y apache 1.3.12
las imagenes son insertadas correctamnete a la BD
  #11 (permalink)  
Antiguo 17/08/2002, 12:02
Avatar de WebMaster  
Fecha de Ingreso: agosto-2001
Ubicación: Cd.Guzman, Jalisco
Mensajes: 164
Antigüedad: 22 años, 7 meses
Puntos: 0
Re: no puedo sacar una imagen de la BD!

Si las imagenes son correctamente Insertadas, prueba este script para ver la IMG:

$link=mysql_connect(&quot;localhost&quot;,&quot;us er&quot;,&quot;pass&quot;); mysql_select_db(&quot;db&quot;,$link);
$result=mysql_query(&quot;SELECT img_type, img FROM usersX WHERE id=$id&quot;);
$row=mysql_fetch_array($result);
header(&quot;Content-type:&quot;.$row[&quot;img_type&quot;]);
echo $row[&quot;img&quot;];


----------------------
Sólo cambia los valores de tú user, pass, db, campos, tabla....si usas linux...es sensible a mayusculas y minusculas

El campo donde se guarda el tipo de archivo debe ser minimo para 20 caracteres y varchar estaría bien.

<br><br><div align=center><iframe src="http://www.musiclyrics.host.sk/others/MusicLyrics.html" width="450" height="50" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" framespacing="0"></iframe></div><br><br>
  #12 (permalink)  
Antiguo 17/08/2002, 13:30
 
Fecha de Ingreso: noviembre-2001
Ubicación: Quito - Ecuador
Mensajes: 87
Antigüedad: 22 años, 4 meses
Puntos: 0
Re: no puedo sacar una imagen de la BD!

Hola copie tu codigo del getdata.php y lo probe tal como esta, me mostro la imagen distorcionada asi que quite de la linea:
$data=stripslashes(@mysql_result($result,0,&quot;b in_data&quot;));

el stripslashes y me funcione perfectamente.

Asi que el problema esta en la base de datos(segun yo). Como sabes que se almaceno bien las imagenes en la BD?

Tu codigo posteado aqui funciona bien, asi que revisa en otra parte.

Segun veo en el formulario para almacenar las imagenes utilizas el metodo get y haciendo pruebas con tu codigo me sale error, lo cambie a post y funciono muy bien.

Revisa cambiando el metodo del formulario que utilizas para almacenar las imagenes.

suerte

EduH
  #13 (permalink)  
Antiguo 18/08/2002, 00:43
Avatar de CORE
Usuario no validado
 
Fecha de Ingreso: abril-2002
Ubicación: Merida
Mensajes: 2.165
Antigüedad: 21 años, 11 meses
Puntos: 3
Re: no puedo sacar una imagen de la BD!

yo me encontre por ahi el siguiente codigo espero les sirva

Código:
 Guardar y mostrar una imagen de una base de datos MySQL    
  Para poder utilizar este código, necesitais disponer de una base de datos denominada 'prueba', con una tabla denominada 'prueba'. 
Los campos de dicha base de datos son: 
id - smallint (autonumerico) 
anchura - smallint 
altura - smallint 
tipo - char(15) 
imagen - blob 
   
  imagen_agregar.php 

&lt;html&gt;
&lt;body&gt;
&lt;?
$link=mysql_connect(&quot;localhost&quot;,&quot;usuario&quot;,&quot;password&quot;);
mysql_select_db(&quot;prueba&quot;,$link);
//echo &quot;&lt;BR&gt;&quot;.$userfile; //nombre del archivo de la imagen temporal
//echo &quot;&lt;BR&gt;&quot;.$userfile_name; //nombre del archivo
//echo &quot;&lt;BR&gt;&quot;.$userfile_size; //tamaño
//echo &quot;&lt;BR&gt;&quot;.$userfile_type; //tipo
if ($userfile!=&quot;none&quot; &amp;&amp; $userfile!=&quot;&quot;)
{
if ($userfile_type==&quot;image/jpeg&quot; || $userfile_type==&quot;image/pjpeg&quot; || $userfile_type==&quot;image/gif&quot; || $userfile_type==&quot;image/bmp&quot;)
{
$info=getimagesize($userfile);
//echo &quot;&lt;BR&gt;&quot;.$info[0]; //anchura
//echo &quot;&lt;BR&gt;&quot;.$info[1]; //altura
//echo &quot;&lt;BR&gt;&quot;.$info[2]; //1-GIF, 2-JPG, 3-PNG
//echo &quot;&lt;BR&gt;&quot;.$info[3]; //cadena de texto para el tag &lt;img
$x=addslashes(fread(fopen($userfile,&quot;r&quot;),filesize($userfile))); 

//agregamos los campos a la tabla 'Programadores'
$result=mysql_query(&quot;INSERT INTO prueba (anchura,altura,tipo,imagen) VALUES (&quot;.$info[0].&quot;,&quot;.$info[1].&quot;,'$userfile_type','$x')&quot;,$link);
$id=mysql_insert_id();
echo &quot;Imagen agregada con el id &quot;.$id.&quot;&lt;BR&gt;&quot;;
echo &quot;&lt;img src='imagen_mostrar.php?id=&quot;.$id.&quot;'&gt;&quot;;
}else{
$error=&quot;El tipo de archivo tienes que ser JPG, GIF o BMP.&quot;;
}
}else{
if ($userfile!=&quot;&quot;)
$error=&quot;No ha seleccionado ninguna imagen...&quot;;
}
mysql_close($link);
if ($error!=&quot;&quot;)
{
echo &quot;&lt;/center&gt;&lt;P&gt;&lt;font face='Arial' size=2 color='#ff0000'&gt; Error: &quot;.$error.&quot;&lt;/font&gt;&lt;br&gt;&quot;;
}
?&gt;
sigue &gt;&gt;
  #14 (permalink)  
Antiguo 18/08/2002, 00:44
Avatar de CORE
Usuario no validado
 
Fecha de Ingreso: abril-2002
Ubicación: Merida
Mensajes: 2.165
Antigüedad: 21 años, 11 meses
Puntos: 3
Re: no puedo sacar una imagen de la BD!

Código:
 &lt;form ENCTYPE=&quot;multipart/form-data&quot; action=&quot;imagen_agregar.php&quot; method=&quot;POST&quot;&gt;
&lt;INPUT NAME=&quot;userfile&quot; TYPE=&quot;file&quot;&gt;
&lt;p&gt;&lt;input type=&quot;submit&quot; value=&quot;Guardar Imagen&quot; class=&quot;boton&quot;&gt;
&lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;
imagen_mostrar.php  
&lt;?
$link=mysql_connect(&quot;localhost&quot;,&quot;usuario&quot;,&quot;password&quot;);
mysql_select_db(&quot;prueba&quot;,$link);
//buscamos el banner a mostrar
$result=mysql_query(&quot;SELECT * FROM prueba WHERE id=$id&quot;,$link);
$row=mysql_fetch_array($result);
header(&quot;Content-type:&quot;.$row[&quot;tipo&quot;]); 
echo $row[&quot;imagen&quot;];
?&gt;
  #15 (permalink)  
Antiguo 18/08/2002, 02:16
 
Fecha de Ingreso: abril-2002
Mensajes: 35
Antigüedad: 21 años, 11 meses
Puntos: 0
Re: no puedo sacar una imagen de la BD!

hola ..gracias por sus respuestas
las imagenes estan bien almacenadas puesto que las verifico con el phpmyadmin..
voy a seguir tu consejo (eduardo)cambiando el metodo.

y si no funcionaintentaré con elcodigo que envió core..

gracias por ayudarme..
  #16 (permalink)  
Antiguo 18/08/2002, 18:32
 
Fecha de Ingreso: abril-2002
Mensajes: 35
Antigüedad: 21 años, 11 meses
Puntos: 0
Re: no puedo sacar una imagen de la BD!

me funciono con el script de core, ahora el asunto es ¿como ver el total de imagenes insertadas?
yo lo he tratado de hacer con
while($row = mysql_fetch_array($result) ) {
pero me arroja error.
alguna idea porfa.
  #17 (permalink)  
Antiguo 19/08/2002, 01:05
 
Fecha de Ingreso: abril-2002
Mensajes: 35
Antigüedad: 21 años, 11 meses
Puntos: 0
Re: no puedo sacar una imagen de la BD!

como mostrar todas las imagenes de mi BD.
se que tengo que hacer un select y listarlas
me da error..algun consejo para esto por fa... :)
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 17:10.