Foros del Web » Programando para Internet » PHP »

La imagen no se ve

Estas en el tema de La imagen no se ve en el foro de PHP en Foros del Web. Hola, estoy intentando que me funcione estos thumbnails y no hay manera me leido las Faq's, he comprobado que el id de la imagen existe, ...
  #1 (permalink)  
Antiguo 21/10/2004, 06:16
 
Fecha de Ingreso: marzo-2004
Mensajes: 50
Antigüedad: 13 años, 9 meses
Puntos: 0
Pregunta La imagen no se ve

Hola,
estoy intentando que me funcione estos thumbnails y no hay manera me leido las Faq's, he comprobado que el id de la imagen existe, pero nada, muestra el nombre, el tipo y el peso de la imagen pero no la imagen. Este es el archivo listar_imagenesprueba.php:

<?php
mysql_connect("localhost","","") or die ("no se ha podido conectar a la BD");

mysql_select_db("aku") or die ("no se ha podido seleccionar la BD");

$sql = "SELECT * FROM fotos ";
$consulta = mysql_query($sql) or die ("No se pudo ejecutar la consulta");

While ($registro=mysql_fetch_assoc($consulta)){
echo "<img src=\"verPeque.php?verimagen=".$registro['id']."\">";
echo "<br> Nombre archivo: ".$registro['nombreFoto'];
echo "<br> Tipo archivo (MIME formato): ".$registro['tipoFoto'];
echo "<br> Peso: ".$registro['pesoFoto']." bytes.<br><br>";
}

?>


y este verPeque.php (los dos del tutorial):

<?php
if(isset($_GET['id'])) {

$conexion=mysql_connect("localhost","","") or die ("no se ha podido conectar a la BD");
mysql_select_db("aku") or die ("no se ha podido seleccionar la BD");
$sql = "SELECT archivo_binario,archivo_tipo,archivo_nombre FROM archivos WHERE id='".$_GET['id']."'";
$consulta = mysql_query($sql,$conexion);
$imagen = mysql_result($consulta,0,"fotografia");
Header ("Content-type: image/jpeg");
$img = imagecreatefromstring($imagen);

$picsize = 123;

$new_w = imagesx($img);
$new_h = imagesy($img);
$aspect_ratio = $new_h / $new_w;
$new_w = $picsize;
$new_h = abs($new_w * $aspect_ratio);
$dst_img = ImageCreateTrueColor($new_w,$new_h);


imagecopyresampled($dst_img,$img,0,0,0,0,$new_w,$n ew_h,imagesx($img),imagesy($img));


imagejpeg($dst_img,'',100);
}

?>


Gracias una vez más.
  #2 (permalink)  
Antiguo 21/10/2004, 06:33
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

$sql = "SELECT archivo_binario,archivo_tipo,archivo_nombre FROM archivos WHERE id='".$_GET['id']."'";

y luego

$imagen = mysql_result($consulta,0,"fotografia");

¿Lees los campos "archivo_binario,archivo_tipo,archivo_nombre" de la tabla, pero luego quieres coger el valor del campo "fotografia"?

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 21/10/2004, 12:26
 
Fecha de Ingreso: marzo-2004
Mensajes: 50
Antigüedad: 13 años, 9 meses
Puntos: 0
es verdad, ya me di cuenta de eso, pero incluso después de cambiar el nombre del campo, en mi caso se llama fotografia, sigue sin aparecer la foto por ningún sitio, no se cual será el fallo, también he cambiado la ruta de "<img src=\"pruebaImagenesBd/verPeque.php?verimagen=".$registro['id']."\">"; pero nada. Yo ya no veo nada...
Saludos.
Ana
  #4 (permalink)  
Antiguo 21/10/2004, 12:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En verPeque.php .. quita las referencias a header() y luego a imagejpeg($dst_img,'',100); (comenta esa línea de código) -> ejecuta tu verPeque.php?verimagen=n°foto_que_sepas_que_exista .. y observa el o los mensajes de error que puedan salir ahí.

El objetivo de todo esto es llegar a ver algún mensaje de error .. si usas header() y más lo llamas por un tag de imagen <img src ....> nunca veras ningún mensaje de error. Esto viene bien cuando funcina el tema . .pero si no vá hay que evaluar el problema así.

Un saludo,
  #5 (permalink)  
Antiguo 21/10/2004, 14:29
 
Fecha de Ingreso: marzo-2004
Mensajes: 50
Antigüedad: 13 años, 9 meses
Puntos: 0
hola Cluster,
esto no lanza ningún error .
he comentado las lineas de código que dices. He dado el numero de id de una foto en listar_imgenes.php:
echo "<img src=\'pruebaImagenesBd\verPeque.php?verimagen=25'\ >";
Tambien he probado esto en verPeque.php:
$sql = "SELECT fotografia, nombreFoto, tipoFoto FROM fotos WHERE id=25";
y no da ningún error, recoje de la Bd el nombre del archivo, el tipo y el peso, sin ningún problema, pero en la imagen nada,yo creo que no llega a entrar verPeque.php (esto es lo que sale más la X de la imagen), :

Nombre archivo: niebla.jpg
Tipo archivo (MIME formato): image/pjpeg
Peso: 23298 bytes.

en fin, parece que soy un poco torpe, perdona por tantas preguntas.
Ana
  #6 (permalink)  
Antiguo 21/10/2004, 14:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Todos los comentarios que te hice son para que ejecutes ese script por separado desde una llamada por el URL tipo:

http://www.nose.nose/verPeque.php?imagen=1

o algo así ..

Si lo llamas siempre por un tag de imagen HTML (<img src .. >) nunca veras más que una X si hay un error ...

Un saludo,
  #7 (permalink)  
Antiguo 21/10/2004, 15:09
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Cita:
Tipo archivo (MIME formato): image/pjpeg
Cita:
Header ("Content-type: image/jpeg");
Mira lo que comenta Cluster, por si hay algun error mas.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #8 (permalink)  
Antiguo 22/10/2004, 03:33
 
Fecha de Ingreso: marzo-2004
Mensajes: 50
Antigüedad: 13 años, 9 meses
Puntos: 0
Pregunta

Este es el error que lanza:

Parse error: parse error, unexpected T_STRING in c:\appserv\www\pruebaimagenesbd\verpeque.php on line 39

y esta la linea 39:
imagecopyresampled($dst_img,$img,0,0,0,0,$new_w,$n ew_h,imagesx($img),imagesy($img));
  #9 (permalink)  
Antiguo 22/10/2004, 05:38
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Cita:
Iniciado por vanax
Este es el error que lanza:

Parse error: parse error, unexpected T_STRING in c:\appserv\www\pruebaimagenesbd\verpeque.php on line 39

y esta la linea 39:
imagecopyresampled($dst_img,$img,0,0,0,0,$new_w,$n ew_h,imagesx($img),imagesy($img));
¿El codigo es igual que el que muestras aqui, con ese espacio entre $n ew_h? Si es asi, ese es el error. No existe ese espacio, es $new_h. ¿Copiaste y pegaste el codigo sin leerlo? Eso es mala costumbre. Sobre todo, muchas veces el codigo que se postea crea conflictos con la forma de visualizar que tienen los foros. Incluso a veces tienen erratas, se nos olvidan parentesis, puntos y comas, sinaxis incorrectas, etc. El codigo que se publica en los foros es para leerlo e intentar entenderlo. Para codigo ya hecho, tienes hotscripts.com, donde te bajas un zip con el fichero de codigo.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #10 (permalink)  
Antiguo 25/10/2004, 04:48
 
Fecha de Ingreso: marzo-2004
Mensajes: 50
Antigüedad: 13 años, 9 meses
Puntos: 0
Gracias, Josemi. No me había dado cuenta. Estoy totalmente de acuerdo con lo que dices, pero desde luego yo no copio los códigos sin entenderlos porque para lo que realmente me sirven es para aprender, de hecho normalmente los cambio para adaptarlos a lo que necesito, en este caso lo que ocurre es que estoy teniendo muchos problemas con unas imagenes, y he intentado ver si me funcionaba ese código tal como estaba (estaba ya un poco agobiada), y luego intentar entender por qué no me funcionaba. A mi eso de bajarme un código y utilizarlo sin comprender no me gusta nada . Procuraré no preguntar tanto.
un saludo.
  #11 (permalink)  
Antiguo 25/10/2004, 06:10
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Cita:
Procuraré no preguntar tanto
Hombre, tampoco es eso. Lo que pasa es que hay errores que se solucionarian con solo leer tranquilamente el codigo. Muchas veces respondo los mensajes deprisa, puedo cometer erratas (llamar primero a la variable $pais y luego usarla como $paises). O en este caso, el propio medio (los foros), que meten "ruido" que crea errores (intenta postear algo de codigo con \ en el, como expresiones regulares).

Por cierto, ¿era ese el fallo (el espacio en blanco)?

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #12 (permalink)  
Antiguo 25/10/2004, 07:18
 
Fecha de Ingreso: marzo-2004
Mensajes: 50
Antigüedad: 13 años, 9 meses
Puntos: 0
Tienes toda la razón, al final el fallo estaba en una ruta mal puesta, y el espacio en blanco también claro!
Muchas gracias,
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 22:26.