Ayuda, cómo desplegar imagen desde Mysql en PHP

Estoy iniciándome con PHP uy busco gestionar información guardada en una BD MYSQL.
Tengo una tabla en la BD en la que guardo información de noticias, y en ella un campo BLOB que almacena una imagen relacionada. No tengo problema para subirla, pero cuando abro la página que debería desplegar la noticia no me muestra la imagen sino el código con el que codifico y guardó en el registro.
El código es el siguiente:
<?php
echo "listar";
mysql_connect("localhost","usuario","pas. Or die ("no se ha podido conectar a la BD");
mysql_select_db("nom_bd") or die ("no se ha podido seleccionar la BD");
$sql = "SELECT id,archivo_nombre,archivo_tipo,archivo_p. FROM archivos";
$consulta = mysql_query($sql) or die ("No se pudo ejecutar la consulta");
While ($registro=mysql_fetch_assoc($consulta)).
echo "<img src=\"ver.php?id=".$registro['id']."\">".
echo "<br> Nombre archivo: ".$registro['archivo_nombre'];
echo "<br> Tipo archivo (MIME formato): ".$registro['archivo_tipo'];
echo "<br>".$registro['archivo_binario'];
echo "<br> Peso: ".$registro['archivo_peso']." bytes.<br><br>";
}
?>
He cambiado el codigo, dejandolo en
....
$sql = "SELECT id,archivo_nombre,archivo_tipo,archivo_p. FROM archivos";
$consulta = mysql_query($sql) or die ("No se pudo ejecutar la consulta");
While ($registro=mysql_fetch_assoc($consulta)).
header("Content-type: image/jpeg");
echo $registro['archivo_binario'];
}P
Pero tampoco así me despliega la imagen, ¿alguien puede decirme donde esta mi error?

1 Respuesta

Respuesta
1
Pues no se, pero yo he tenido varios casos que el almacenamiento de imágenes en la base de datos termina no siendo de tu agradrado.
¿No haz pensado más bien en subir la imagen al sitio y referenciarla con la ubicación en la tabla?
La idea es que una persona cualquiera pueda subir un articulo con una imagen asociada a la BD sin tener que entrar en los directorios de la página, simplemente subir la noticia o articulo y cuando se consulte la página lo devuelva todo.
Por eso subo la imagen así, aunque estoy abierto a cualquier solución, pero me gustaría también saber por qué no se despliega la imagen
Yo nunca he montado las imágenes sobre la base de datos por lo que se que pone mucho problema. Pero te recomiendo:
1. Verifica el tipo mime.. puede que no sea jpeg sino solo jpg.
2. A veces se genera un error cuando se inserta la imagen en la bd, es decir la inserta pero algo sale mal y tiene que ver son la version del mysql. Entonces ponle un print al resultado de insert a ver que pasa.
3. por que la imagen no la imprimes dentro de una etiqueta <img> de html a ver que pasa? es decir <img src="imagen">
Sobre lo otro.. entra a los directorios y es más cómodo, ademas que la bd no se afecta en cuanto tamaño del registro.
Si estas interesado en eso es fácil.
1. Creas un dir en tu sitio que se llame ejemplo img_noticias
2. Subes la imagen a esa carpeta, y ojo en lo posible la renombras.. eso todo lo haces en el proceso de upload, si tienes dudas de eso puedes googlear que hay bastante de eso. Es fácil.
3. Luego que haces upload envías a la base de datos la ruta + la el nombre de la imagen renombrada con todo y extensión... ejemplo ../img_noticias/imagen1.jpg y haces el insert de esa cadena en la base de datos.
4. no es mas :)
Para mostrar la imagen solo deberías hacer el select y mostrarla mediante un echo dentro de la etiqueta <img> de html. que en ultimas te imprimiria ejemplo http://tusitio/img_noticias/img.jpg
Es mucho más sencillo
Ya, pero como dije antes, la idea es que cualquier persona pueda subir el articulo y la imagen, por eso no quiero usar un directorio.
Hice el cambio por jpg en el tipo mime pero ni así. Seguiré intentándolo a ver si lo consigo, pero mientras tanto acepto sugerencias
Pues estuve mirando tu problema y parece que hay varios con el mismo síntoma y no le han encontrado la solución...
Sobre lo que te digo.. no entiendo la razón de no usar un directorio.. si es que con ello no tienes problema.. solo debes dar al directorio permisos 775 y ya.. cualquiera puede subir la imagen de la noticia.
Soy novato con esto, por eso quería usar una solución que pareciera simple, y dubir datos a la BD y cosnultarla parecía serlo. Con datos de otro tipo funciona, con las imágenes no.
Mirare lo del upload para saber si se ajusta a lo que deseo...
Ok es fácil como cm te dije.. si ya estas haciendo el upload... de la imagen a la bd ya tienes resulto el 80% solo te queda renombrar el archivo, insertar la ruta enla bd e imprimir la imagen

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas