Foros del Web » Programando para Internet » PHP »

Problema al extraer imágenes de mi bd

Estas en el tema de Problema al extraer imágenes de mi bd en el foro de PHP en Foros del Web. hola a todos, tengo el siguiente problema, el código de mi página es el siguiente: Código PHP: <?php       //para conectarse, incluyo func_conecta.php         include( "func_conecta.php" ...
  #1 (permalink)  
Antiguo 08/08/2006, 19:53
Avatar de tupajz  
Fecha de Ingreso: julio-2006
Mensajes: 55
Antigüedad: 17 años, 8 meses
Puntos: 1
Problema al extraer imágenes de mi bd

hola a todos, tengo el siguiente problema,
el código de mi página es el siguiente:

Código PHP:
<?php
  
  
//para conectarse, incluyo func_conecta.php 
   
  
include("func_conecta.php");
    
  
//para poder ingresar una imágen
  
  
$image imagecreatefromjpeg('imagenes/1.jpg');
  
ob_start();
  
imagejpeg($image);
  
$jpg ob_get_contents();
  
ob_end_clean();
  
  
//para ingresar la imágen a la base de datos
  
  
$jpg str_replace('##','\#\#',mysql_escape_string($jpg));
  
$result mysql_query("INSERT INTO tbl_Banner values (2,'foto prueba','foto del charlie','$image')");
  
  
//para extraer la imágen
  
  
$query1="select imagen from tbl_banner where id_banner=1";
  
$res1=mysql_query($query1);
  
$result_array mysql_fetch_array($res1);
  
//header("Content-Type: image/jpeg");
  
echo $result_array[0];
?>
El problema radica que al momento de extraer las imágenes sólo obtengo una serie de caracteres sin sentido como sigue:

ÿØÿàJFIFHHÿá5jExifII*  l Œ  ¤ ˜(1 ² 2X i‡’”š‚ ‚X "ˆ'ˆd0210Ê Þ ‘’ 0 ’8 ’ ’ ’P |’º†’}@ 0100 € €à à  „  !"# Ä $% Ð &'(h)*+ü , - ./À01 3ÐH CBÔ €€€€ÿÿó‘üü´ÂÿâÿÎÎÿÿÿÉÿ¶dÙsÚÍt Ú €àHH2004:04:09 11:06:04OLYMPUS DIGITAL CAMERA OLYMPUS OPTICAL CO.,LTDC-1 56-1065 ’â02100100€à 2004:04:09 11:06:042004:04:09 11:06:04ú ,dÂd dHH†R980100dd8 ½ÿTÿ&ÿ¥ÿ%ÿðþD4856C-1  *æ@"@1681061810 00 00 03 h„ÿÄÿœœÿþÿ’ÿl À¨«¢

Como dato adicional les puedo decir que estoy usando WAMP (Windows Apache Mysql Php) ya instalé la librería GD y supuestamente debería funcionar
alguna idea????
Agradeceré mucho cualquier ayuda o referencia
Un saludo a todos
  #2 (permalink)  
Antiguo 08/08/2006, 22:20
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Te falta enviar las cabeceras correctas para decirle al explorador que tipo de dato estas enviando
  #3 (permalink)  
Antiguo 08/08/2006, 22:57
Avatar de tupajz  
Fecha de Ingreso: julio-2006
Mensajes: 55
Antigüedad: 17 años, 8 meses
Puntos: 1
GatorV creo que tienes razón con enviar correctamente las cabeceras y tengo entendido que debo hacerlo de la siguiente forma:

Cita:
header("Content-Type: image/jpeg");
(Como se ve en el código de mi mensaje original)

sin embargo en ese caso obtengo el siguiente error:

Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\Roccmuss\otro\muestra.php:8) in C:\wamp\www\Roccmuss\otro\muestra.php on line 23

te estaría muy agradecido si me mostraras como hacerlo o que me muestres tu forma de presentar imágenes extrayéndolas de la base de datos
de todas formas gracias por la orientación seguiré indagando en eso.
Un saludo
  #4 (permalink)  
Antiguo 08/08/2006, 23:12
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 18 años, 3 meses
Puntos: 5
Buenas, el mensaje de error te dice que ya mandaste headers, o sea que no podés volver a mandarlos...

Fijate esto:

http://ar2.php.net/manual/es/function.ob-start.php
Cita:
bool ob_start ( [callback llamada_de_retorno_salida [, int tamanyo_segmento [, bool borrar]]] )

Esta función habilitará el uso de búferes de salida. Mientras los búferes de salida están activos no se envía salida desde el script (más que las cabeceras), en su lugar la salida es almacenada en un búfer interno.
Al usar ob_start(); estás mandando ya headers. Otra cosa, la línea

Código PHP:
header("Content-Type: image/jpeg"); 
tiene que ir antes de

Código PHP:
imagejpeg($image); 
que es la que le da salida a la imagen.

Suerte
Califa
  #5 (permalink)  
Antiguo 09/08/2006, 07:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Y que tienes exactament en muestra.php línea 8 ..

No puede existir nada de HTML .. nada de espacios ni saltos de línea antes de <? .. ni despues de ?> (si es que llamas archivos a su vez por un include() o equivalente).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 09/08/2006, 17:07
Avatar de tupajz  
Fecha de Ingreso: julio-2006
Mensajes: 55
Antigüedad: 17 años, 8 meses
Puntos: 1
En la línea 8 existe un form como sigue:
Cita:
echo "<form name='form1' method='post' action=''>";
así aumente o quite líneas siempre me dá error en la línea del form.
Sin embargo creo que dará resultado con lo planteado por Califa.
Gracias por las contribuciones Califa y Cluster, pondré en práctica de inmediato lo enseñado
Saludos.
  #7 (permalink)  
Antiguo 09/08/2006, 17:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por tupajz Ver Mensaje
En la línea 8 existe un form como sigue:

así aumente o quite líneas siempre me dá error en la línea del form.
Sin embargo creo que dará resultado con lo planteado por Califa.
Gracias por las contribuciones Califa y Cluster, pondré en práctica de inmediato lo enseñado
Saludos.
Esque realmente el script (còdigo) que genera tu imagen: justamente el còdigo que pusistes en el foro .. DEBE ir en un script aparte .. un "genera_imagen.php" o algo asì que luego llames en tu tag's HTML de imagen:

<img src="genera_imagen.php"> en el còdigo que contenga ese resto de HTML como tu formulario o lo que sea ..

Esto es própio de la filosofía de trabajo de un navegador (no de "PHP" en sì) .. y del protocolo HTTP.

Una "página" en sí es entregada al cliente con cierto tipo "HTML/texto plano" por ejemplo .. cuando deseas "enviar contenido de otro tipo" al navegador mezclado con ese otro contenido de otro tipo .. se hace en HTML por médio de "tag´s" como el de imagen en ese caso que está "preparado" y diseñado para que el "navegador" cuando lea esa instruccion HTML .. tome e interprete los datos como "binarios" que son (mejor dicho segùn el formato MIME que se indica ..).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 09/08/2006, 21:38
Avatar de tupajz  
Fecha de Ingreso: julio-2006
Mensajes: 55
Antigüedad: 17 años, 8 meses
Puntos: 1
Lo hice como me indicaste en otra página ya sea php o html mediante la etiqueta
Cita:
<img src="muestra.php">
y funcionó perfectamente, muchas gracias por la ayuda Cluster te quedo muy agradecido.

Saludos
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 16:56.