Programación Web y Scripting > PHP

 Extraer Imágenes Bmp Desde Mysql

<< < (2/3) > >>

Ithilien:
El problema es que soy muy nuevo en PHP y no logro todavía pillarlo mucho. Alguien podría ayudarme en este tema? Lo necesito con urgencia y he estado buscando información en la web acerca de las imágenes como campo BLOB en mySQL y hay, en general, poca cosa ( por lo menos que yo haya visto ).

Gracias!

Ithilien:
Este es el codigo:

[CODE]
<html>
<head>
   <title>Ejemplo de PHP</title>
</head>
<body>
<?php

   if (!($link=mysql_connect("localhost","root","root")))
   {
      echo "Error conectando a la base de datos.";
      exit();
   }
   if (!mysql_select_db("mibd",$link))
   {
      echo "Error seleccionando la base de datos.";
      exit();
   }


$result = mysql_query("SELECT * FROM persona WHERE dni = 111111", $link);

echo "Nombre:    ".mysql_result($result, 0, "nombre")."<br>";

echo "Dirección:    ".mysql_result($result, 0, "domicilio")."<br>";

Header( "Content-type: image/bmp");
echo "Fotografia:    ".mysql_result($result, 0, "fotografia")."<br>";

mysql_close($link); //cierra la conexion
?>
</body>
</html>
[CODE]

Y aparece en el navegador esto:

Nombre: Pepe
Dirección: Calle Molinos 5

Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\hhh.php:6) in C:\AppServ\www\hhh.php on line 26
Fotografia: BM����6���(���y���

Mollense:
¿Que tal Ithilien?
El error
--- Citar ---Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\hhh.php:7) in C:\AppServ\www\hhh.php on line 41
--- Fin de la cita ---
Se produce porque no podés modificar las cabeceras (Header) una vez que ya mandaste algo al navegador, por eso los caracteres raros en la pantalla, no podés abrir las etiquetas <html>, <body> y demás, ni siquiera puede haber un espacio en blanco antes de las etiquetas "<?php" para poder usar esta directiva. Por lo tanto, te paso un ejemplo que debería servirte, no se si sea la forma correcta de hacerlo pero funciona...

index.php
--- Código: Text ---&#60;html&#62;  &#60;head&#62;    &#60;title&#62;Ejemplo de PHP&#60;/title&#62;  &#60;/head&#62;  &#60;body&#62;  &#60;?php         &#036;id=2;    if (!(&#036;link=mysql_connect(&#34;localhost&#34;,&#34;root&#34;,&#34;&#34;))){      echo &#34;Error conectando a la base de datos.&#34;;      exit();    }    if (!mysql_select_db(&#34;test&#34;,&#036;link)){      echo &#34;Error seleccionando la base de datos.&#34;;      exit();    }     &#036;result = mysql_query(&#34;SELECT * FROM persona WHERE id = &#036;id&#34;, &#036;link);     echo &#34;Nombre: &#34;.mysql_result(&#036;result, 0, &#34;nombre&#34;).&#34;&#60;br&#62;&#34;;     echo &#34;Dirección: &#34;.mysql_result(&#036;result, 0, &#34;direccion&#34;).&#34;&#60;br&#62;&#34;;        echo &#34;Fotografia:&#60;br/&#62;&#34;;    echo &#34;&#60;img src='imagen.php?id=&#036;id'/&#62;&#34;;      mysql_close(&#036;link); //cierra la conexion  ?&#62;  &#60;/body&#62;&#60;/html&#62; 
imagen.php
--- Código: Text ---&#60;?php  &#036;id=&#036;_GET[&#34;id&#34;];  if (!(&#036;link=mysql_connect(&#34;localhost&#34;,&#34;root&#34;,&#34;&#34;))){    echo &#34;Error conectando a la base de datos.&#34;;    exit();  }  if (!mysql_select_db(&#34;test&#34;,&#036;link)){    echo &#34;Error seleccionando la base de datos.&#34;;    exit();  }   &#036;result = mysql_query(&#34;SELECT imagen FROM persona WHERE id = &#036;id&#34;, &#036;link);   Header( &#34;Content-type: image/bmp&#34;);  echo mysql_result(&#036;result, 0, &#34;imagen&#34;);    mysql_close(&#036;link); //cierra la conexion?&#62; 
PD: Los campos que estoy utilizando no son los mismos que los de tu DB.

Un saludo  :hola:

Mollense:
Porfa Ithilien, borra todos esos caracteres raros que el hilo se hace muy difícil de leer...

 :comp:

Ithilien:
Bendito seas Ángel!! Funciona a la perfección.

Lo primero es que ya he quitado los caracteres raros. Lo segundo, algo de eso leí, pero no acabo de entender donde estaba el problema. Quiero entender que indico lo de modificar el HEADER despues de mostrar el nombre y la dirección.

Bueno, el caso es que ya funciona a la perfección. Estaba bastante preocupado y quería agradecértelo mucho porque me has solucionado un quebradero de cabeza que llevaba ya con él varios días.

GRACIAS DE NUEVO!

P.D.: Estoy acabando mi Proyecto Fin de Carrera y esta parte la acabo de empezar y como no es mucho, era lo que más problemas podría darme así que por eso estoy tan contento. Saludos!

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa