• Domingo 22 de Diciembre de 2024, 18:29

Autor Tema:  Insertar Imágenes A Traves De Archivos Binarios  (Leído 1393 veces)

zaida20

  • Miembro MUY activo
  • ***
  • Mensajes: 213
    • Ver Perfil
Insertar Imágenes A Traves De Archivos Binarios
« en: Jueves 7 de Junio de 2007, 11:51 »
0
Hola:
Soy nueva en el foro, y tengo un problema. Quiero insertar imágenes en mysql a través de php, transformando las imágenes a archivos binarios, he conseguido hacerlo mostrándome solo una imagen. Éste es el código:

Código: Text
  1. <?php
  2. //conexion
  3. $dp_di="localhost";
  4. $usuario_db="root";
  5. $clave_db=NULL;
  6. $conexion=mysql_connect($dp_di,$usuario_db,$clave_db);
  7. if($conexion==NULL)
  8. {
  9.   printf("Error");
  10. }
  11. //conectamos con la bd utopia
  12. $db='utopia';
  13. mysql_select_db($db,$conexion);
  14. ob_start();
  15. // Abro el archivo de imagen para cargar sus contenidos
  16. $archivo = 'sin_ruta/2.jpg';
  17. $fp = fopen ($archivo, 'r');
  18. if ($fp)
  19. {
  20.   $datos = fread($fp, filesize ($archivo)); // cargo la imagen
  21.   fclose($fp);
  22.   // averiguo su tipo mime
  23.   $tipo_mime = 'image/jpeg';
  24.   $isize = getimagesize($archivo);
  25.   if ($isize)
  26.   $tipo_mime = $isize['archivo_binario'];
  27.   // La guardamos en la BD
  28.   $datos = base64_encode ($datos);
  29.   $sql = "INSERT INTO archivos (archivo_binario) VALUES ('$datos')";
  30.   $res = mysql_query($sql);
  31.   if (!$res)
  32.     echo "Error al ejecutar la consulta ($sql)\n";
  33.  
  34.   //hacemos el select.
  35.  
  36.     $sql = "SELECT archivo_binario FROM archivos where id=28";
  37.      $consulta = mysql_query($sql) or die ("No se pudo ejecutar la consulta");
  38.   if($consulta!=NULL)
  39.   {
  40.     if(mysql_num_rows($consulta)!=0)
  41.     {
  42.       $datos=mysql_fetch_array($consulta);
  43.       echo base64_decode($datos['archivo_binario']);
  44.     }
  45.   }
  46. }
  47.  
  48. ?>
  49.  
  50.  

El problema viene cuando quiero que se muestren todas las imágenes que contiene la tabla de mysql, éste es el código:

Código: Text
  1. <?php
  2. //conexion
  3. $dp_di="localhost";
  4. $usuario_db="root";
  5. $clave_db=NULL;
  6. $conexion=mysql_connect($dp_di,$usuario_db,$clave_db);
  7. if($conexion==NULL)
  8. {
  9.   printf("Error");
  10. }
  11. //conectamos con la bd utopia
  12. $db='utopia';
  13. mysql_select_db($db,$conexion);
  14. ob_start();
  15. // Abro el archivo de imagen para cargar sus contenidos
  16. $archivo = 'sin_ruta/2.jpg';
  17. $fp = fopen ($archivo, 'r');
  18. if ($fp)
  19. {
  20.   $datos = fread($fp, filesize ($archivo)); // cargo la imagen
  21.   fclose($fp);
  22.   // averiguo su tipo mime
  23.   $tipo_mime = 'image/jpeg';
  24.   $isize = getimagesize($archivo);
  25.   if ($isize)
  26.   $tipo_mime = $isize['archivo_binario'];
  27.   // La guardamos en la BD
  28.   $datos = base64_encode ($datos);
  29.   $sql = "INSERT INTO archivos (archivo_binario) VALUES ('$datos')";
  30.   $res = mysql_query($sql);
  31.   if (!$res)
  32.     echo "Error al ejecutar la consulta ($sql)\n";
  33.   //hacemos el select.
  34.   $sql = "SELECT archivo_binario FROM archivos";
  35.   $consulta = mysql_query($sql) or die ("No se pudo ejecutar la consulta");
  36.   $i=0;
  37.   if($consulta!=NULL)
  38.   {
  39.     if(mysql_num_rows($consulta)!=0)
  40.     {
  41.       while ($datos=mysql_fetch_array($consulta))
  42.       {
  43.         $archivo_bin[$i]=$datos['archivos_binarios'];
  44.         $pepe[$i]=base64_decode($archivo_bin[$i]);
  45.         //header ('Content-Type: image/jpeg');
  46.         echo base64_decode($datos['archivo_binario']);
  47.         echo $pepe[$i];
  48.         echo $i;
  49.         $i++;
  50.       }
  51.     }
  52.   }
  53. }
  54. ?>
  55.  
  56.  
  57.  

No me funciona, sólo me muestra una imagen. ¿Alquien puede ayudarme?
Muchas gracias
Saludos: :hola:
---- Las oportunidades que se te presentan son las que son y ellas te llevarán a la felicidad ----

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Insertar Imágenes A Traves De Archivos Binarios
« Respuesta #1 en: Jueves 7 de Junio de 2007, 13:20 »
0
Hola

no se si tu metodo de Inserción este funcionadote bien

pero en este caso para leer  todas las imagenes seria conveniente que cree un archivo que lea la imagen con la cabecera apropiada por ejemplo

con este archivo desplegarias en una tabla (HTML) los las imagenes contenida en la tabla de MySQL

galeria.php
Código: Text
  1. <?php
  2.  
  3. //conexion
  4. $dp_di="localhost";
  5. $usuario_db="root";
  6. $clave_db="";
  7. $conexion=mysql_connect($dp_di,$usuario_db,$clave_db);
  8. $id=$_GET['id'];
  9.  
  10. if($conexion)
  11. {
  12.  
  13. $db='is';
  14. mysql_select_db($db,$conexion);
  15. ob_start();
  16.  
  17.  $sql = "SELECT id FROM empleados";
  18.  $consulta = mysql_query($sql);
  19.  
  20.   if($consulta)
  21.   {
  22.      echo "<table border='1'>";
  23.       while ($datos=mysql_fetch_array($consulta))
  24.       {
  25.         echo "<td><td><img src='imagen.php?id=".$datos['id']."' width='190px' height='90px'></td></tr>\n";
  26.       }
  27.       echo "</table>";
  28.   }
  29. }  
  30.  
  31. ?>
  32.  


imagen.php
Este archivo procesa el campo blob

Código: Text
  1.  
  2. <?php
  3. header ('Content-Type: image/jpeg');
  4.  
  5. //conexion
  6. $dp_di="localhost";
  7. $usuario_db="root";
  8. $clave_db="";
  9. $conexion=mysql_connect($dp_di,$usuario_db,$clave_db);
  10. $id=$_GET['id'];
  11.  
  12. if($conexion)
  13. {
  14.  
  15. $db='is';
  16. mysql_select_db($db,$conexion);
  17. ob_start();
  18.  
  19.  $sql = "SELECT foto FROM empleados  WHERE id='$id'";
  20.  $consulta = mysql_query($sql);
  21.  
  22.   if($consulta)
  23.   {
  24.       $datos=mysql_fetch_array($consulta);
  25.       echo $datos['foto'];
  26.   }
  27. }
  28. ?>
  29.  

aqui hay una manera de insertar

http://www.buayacorp.com/archivos/guardar-...-blob-de-mysql/

Para Leer

http://www.buayacorp.com/archivos/mostrar-...sql-usando-php/

aunque no se si tu metodo funciones yo hice pruebas con unas tablas que ya contienen imagenes :P y es una idea  :ph34r:  supongo que hay mas ......

Espero te sea de ayuda
Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

zaida20

  • Miembro MUY activo
  • ***
  • Mensajes: 213
    • Ver Perfil
Re: Insertar Imágenes A Traves De Archivos Binarios
« Respuesta #2 en: Jueves 7 de Junio de 2007, 13:30 »
0
Muchas gracias F_Tanori

Lo he conseguido con un código que he encontrado en éste foro, de todas formas probaré con el tuyo haber que tal.

Muchisimas gracias!!!!
Saludos:  :hola:
---- Las oportunidades que se te presentan son las que son y ellas te llevarán a la felicidad ----