Autor Tema: Cargar imagen desde mysql  (Leído 3294 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado Uchija Itachi

  • The Communiter-
  • *
  • Mensajes: 1437
Cargar imagen desde mysql
« : febrero 11, 2013, 11:23:01 pm »
Muy buenas, pues acudo a ustedes pues porq no he logrado hacerlo funcionar.

Pues estoy haciendo un pequeño sistema en el cual me estan solicitando que las imagenes esten almacenadas en la base de datos, ya me hice el script en php para poder almacenar las imagenes en mysql, va chivo hasta ahi todo bien.

El problema lo tengo cuando necesito imprimir en pantalla desde php la imagen que tengo almacenada en en la base de datos.

Alguien ha hecho eso alguna vez?

se los agradeceria
"Si la fe es ciega.. La justicia es ciega.. El amor es ciego.. Para que pagar la factura de la luz" - Xhelazz

"La tele me ha culturizado.. Porque cada vez que la encienden en casa, me voy a leer a mi cuarto" - Xhelazz

Desconectado Colochozan

  • Sv Member
  • ***
  • Mensajes: 121
Re:Cargar imagen desde mysql
« Respuesta #1 : febrero 12, 2013, 12:01:20 am »
que tipo de dato estas guardando Oo!? no has verificado eso Oo!? ... cuando hago algo para subir imagenes lo unico que he hecho es guardar el nombre de la de la imagen y la extensión, aveces tambien guardo la ruta si es algo como para guardar imagenes por usuarios.. la imagen solo la muevo a una carpeta :D asi no me complico aunque digan que hay desventajas vv ... para mostrar las la ruta es donde se guardan la imagenes yo la dejo estatica con la ruta o nombre guardado !

Desconectado Colochozan

  • Sv Member
  • ***
  • Mensajes: 121
Re:Cargar imagen desde mysql
« Respuesta #2 : febrero 12, 2013, 12:45:31 am »
buscando tu situación encontre esto creo que asi lo estas haciendo tu  espero que te sirva no he probado esto !!

http://ingeniuz.blogspot.com/2005/05/cmo-almacenar-una-imagen-en-mysql-sql.html

Desconectado mxgxw

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 5665
  • Starlet - 999cc
    • mxgxw
Re:Cargar imagen desde mysql
« Respuesta #3 : febrero 12, 2013, 07:37:15 am »
Muy buenas, pues acudo a ustedes pues porq no he logrado hacerlo funcionar.

Pues estoy haciendo un pequeño sistema en el cual me estan solicitando que las imagenes esten almacenadas en la base de datos, ya me hice el script en php para poder almacenar las imagenes en mysql, va chivo hasta ahi todo bien.

El problema lo tengo cuando necesito imprimir en pantalla desde php la imagen que tengo almacenada en en la base de datos.

Alguien ha hecho eso alguna vez?

se los agradeceria

¿Estas modificando los headers cuando respondes con la imágen?

Asumiendo que tu imágen está correctamente guardada como un BLOB en tu base de datos, tu respuesa debería ser algo así (en caso de una imagen tipo JPEG):

Código: [Seleccionar]
<?php
header
('Content-Type: image/jpeg');
echo 
$imagen;

Notá que no utilizo ?> porque cualquier carácter que se vaya extra puede provocar que la imágen no se cargue. Con archivos binarios tenés que asegurarte de que lo único que se envíe al cliente es la imágen, un simple espacio o fín de línea puede provocar que el navegador te muestre un error al cargar la imágen


Desconectado Uchija Itachi

  • The Communiter-
  • *
  • Mensajes: 1437
Re:Cargar imagen desde mysql
« Respuesta #4 : febrero 12, 2013, 08:56:30 am »
¿Estas modificando los headers cuando respondes con la imágen?

Asumiendo que tu imágen está correctamente guardada como un BLOB en tu base de datos, tu respuesa debería ser algo así (en caso de una imagen tipo JPEG):

Código: [Seleccionar]
<?php
header
('Content-Type: image/jpeg');
echo 
$imagen;

Notá que no utilizo ?> porque cualquier carácter que se vaya extra puede provocar que la imágen no se cargue. Con archivos binarios tenés que asegurarte de que lo único que se envíe al cliente es la imágen, un simple espacio o fín de línea puede provocar que el navegador te muestre un error al cargar la imágen

en efecto el tipo de dato de la imagen es mediumblob, soy bastante nuevo usando php  por lo tanto desconozcoibastantes cosas, aqui esta lo que estoy tratando de hacer: Primero trato de recuperar la imagen que guarde en la base de datos desde otro archivo PHP, con la imagen ya guardada trato de que el row pueda crear una secuencia de botones que dependiendo la cantidad de imagenes asi sera el numero de botones.
La tabla tiene datos id, nombre e imagen

Código: [Seleccionar]
<?php 
$dbhost 
"localhost";
$dbusuario "root";
$dbpassword "";
$lineBreak 4
 
$db "alcaldia"
$conexion mysql_connect($dbhost$dbusuario$dbpassword);
mysql_select_db($db$conexion);
$sql=mysql_query("SELECT * FROM botonera",$conexion); 




echo 
"<center>"
echo 
"<font size=40>Menu Principal</font>";
echo 
"<p/>"
echo 
"<br/>"
if ( 
mysql_num_rows ($sql)> 0

echo 
"<table width=500 border=1 cellspacing=0>"
echo 
"<tr>";  // tr es la fila y td es la celda d la columna
    
for ($i=$i <= mysql_num_rows($sql); $i=$i+1
    { 
        while (
$row mysql_fetch_array ($sql)) 
        { 
      
$i++; 
            if (
$i $lineBreak == 0
            { 

echo "<tr><p/></tr>"
   echo "<td> <center><input type='image' style='font-size:20px; text-align:center' name='tipo' src='$row[imagen]' size=20/></center></td>";
            } else 
                {
               echo 
"<td> <center><input type='image' style='font-size:20px; text-align:center' name='tipo' src='$row[imagen]' size=20/></center></td>"
                }
        
        }
    }
echo 
"</tr></table>";
echo 
"</center>";
}
?>



"Si la fe es ciega.. La justicia es ciega.. El amor es ciego.. Para que pagar la factura de la luz" - Xhelazz

"La tele me ha culturizado.. Porque cada vez que la encienden en casa, me voy a leer a mi cuarto" - Xhelazz

Desconectado stoke

  • Sv Member
  • ***
  • Mensajes: 342
Re:Cargar imagen desde mysql
« Respuesta #5 : febrero 12, 2013, 03:19:49 pm »
La forma que recuperas la imagen es incorrecta.

Debes usar algo asi:

<img src="recuperarimagen.php?id=5">

Luego en otro archivo recuperarimagen.php

Lo que te mencionaron...


<?php
header('Content-Type: image/jpeg');
list($imagen) = mysql_fetch_row(mysql_query("SELECT imagen FROM table WHERE id = $_GET[id] "));
echo $imagen;


Adicionalmente, yo usaria tambien las funciones base64_encode()/decode();

$raw = base64_encode(file_get_contents("imagen.jpg"));