Mostrar imagen guardada en Base de datos.

1,224 views
Skip to first unread message

Gustavo

unread,
Feb 5, 2008, 5:09:21 PM2/5/08
to symfony-es
Soy nuevo en Symfony. Estoy intentando desplegar imagenes previamente
almacenadas en una base Mysql. Lo visualizo como binario pero no logro
hacer aparecer la imagen en un elemento IMG. El último intento fue un
helper con el siguiente contenido:
ImagenHelper.php-
<?
function muestro_imagen($imagen)
{
header("Content-type: image/jpeg");
echo($imagen);
}
?>
y en el template:
_imagen.php (con un include_partial en el showSuccess.php)
<? use_helper('Imagen')?>
<img src="<?muestro_imagen($sf_user->getAttribute('image'))?> ó
también
<img src="<?echo muestro_imagen($sf_user->getAttribute('image'))?> y
alguna variante más, logrando ver solamente los caracteres del
binario.
He probado por el lado de la configuración con el view.yml pero sin
acertar.
Cualquier orientación desde ya la agradezco. Sigo investigando
mientras tanto.
Saludos.

KNO

unread,
Feb 6, 2008, 3:01:27 AM2/6/08
to symfo...@googlegroups.com
El 5/02/08, Gustavo <gustavo.pa...@gmail.com> escribió:

Primero, almacenar imágenes en la BD no suele ser buena idea. Lo mejor
es que guardes el nombre del archivo y guardes la imagen en el sistema
de ficheros.
Lo segundo, que de ninguna forma podría funcionar eso que haces. en el
src de la etiqueta img lo que tienes que colocar es una url a la
imagen. Para poder referenciarla tendrías que crear una acción en un
módulo y que fuese éste el que te la devolviese (sin layout, claro) y
en la etiqueta img (no podrás usar el helper) poner la url a ese
módulo/acción.

kNo

Yusniel

unread,
Feb 6, 2008, 10:02:11 AM2/6/08
to symfony-es
Exactamente, lo que puedes hacer es guardar las imágenes en un
directorio de symfony, puede ser images o uploads en la carpeta web,
uploads si son subidas al servidor e imagenes si son puestas
directamente en el directorio, aunque se puede configurar para que te
suba las imagenes al directorio imagenes. Veamos como sería para el
caso de uploads. Con el helper input_file_tag() subes la imagen al
servidor, por defecto a la carpeta uploads. Luego almacenas el nombre
de la imagen en la base de datos. Una vez almacenado el nombre de la
imagen en la BD, podemos cargarla desde la vista con el helper
image_tag(). Por ejemplo:
<?php echo image_tag('/'.sfConfig::get('sf_upload_dir_name').'/'.
$foto,'')?>
donde $foto es el nombre de la foto fisica en el directorio uploads.
Puedes dividir el contenido del directorio uploads en categorias, por
ejemplo: imagenes, files, media, etc. Saludos.

On 6 feb, 03:01, KNO <lin...@gmail.com> wrote:
> El 5/02/08, Gustavo <gustavo.pablo.gue...@gmail.com> escribió:

acido || cuatroxl.org

unread,
Feb 6, 2008, 11:45:16 AM2/6/08
to symfo...@googlegroups.com
symfony es framework(alguno dirá que algo más) de PHP, no un lenguaje en si mismo, así que todo lo que puedas hacer en php se puede con symfony.

http://www.google.es/search?hl=es&client=firefox-a&rls=org.mozilla%3Aes-ES%3Aofficial&hs=ggS&q=imagenes+en+mysql&btnG=Buscar&meta=

El día 6/02/08, Yusniel <yhida...@gmail.com> escribió:



--
:::::::::::::::::::::::::::::::::::
:::: Jimmy Collazos ::::::
::: www.cuatroxl.com :::
:::::::::::::::::::::::::::::::::::

Rubén Escribano Laparra

unread,
Feb 6, 2008, 4:42:09 PM2/6/08
to symfo...@googlegroups.com
Si las imagenes no son confidenciales: Huellas digitales, radiografias, etc, no hay razon para almacenarlas en una base de datos.

El día 5/02/08, Gustavo <gustavo.pa...@gmail.com> escribió:

acido || cuatroxl.org

unread,
Feb 6, 2008, 4:44:57 PM2/6/08
to symfo...@googlegroups.com
solo intentaba responder a la pregunta: "Estoy intentando desplegar imágenes previamente
almacenadas en una base Mysql
...."
:(

El día 6/02/08, Rubén Escribano Laparra <escriba...@gmail.com> escribió:



--
:::::::::::::::::::::::::::::::::::
:::: Jimmy Collazos ::::::
::: www.cuatroxl.com :::
:::::::::::::::::::::::::::::::::::

Gustavo

unread,
Feb 6, 2008, 5:51:51 PM2/6/08
to symfony-es
Agradezco los aportes.
Me gustaria puntualizar algunos puntos:
-El guardar imagenes en una DB me lo pidieron, o sea se lo tengo que
hacer. Las dudas de la conveniencia la plateé yo oportunamente, pero
lo quieren así y ya.
-El src="ver_foto.php?idfoto=1" por ej. ya lo he hecho y funciona.
ver_foto.php va a finalizar con :

$sql = "SELECT $campo, mime
FROM tabla
WHERE idfoto = $idfoto";
# Conexión a la base de datos
$link = mysql_connect(DBHOST, DBUSER, DBPASSWORD) or
die(mysql_error($link));;
mysql_select_db(DBNAME, $link) or die(mysql_error($link));
$conn = mysql_query($sql, $link) or die(mysql_error($link));
$datos = mysql_fetch_array($conn);
// La imagen
$imagen = $datos[0];
// El mime type de la imagen
$mime = $datos[1];
// Gracias a esta cabecera, podemos ver la imagen
// que acabamos de recuperar del campo blob
header("Content-Type: $mime");
// Muestra la imagen
echo $imagen;
extraido de http://www.buayacorp.com/archivos/mostrar-una-imagen-desde-blob-mysql-usando-php/
o sea que, como alguno de los que contestó dijo , si lo hace php tiene
que poderse en Symfony.
Me gustó la idea de intentar con symfony, y como tengo algún tiempo lo
encaré. Sigo en la busqueda.
Saludos.
Gustavo.




On 6 feb, 14:45, "acido || cuatroxl.org" <acid...@gmail.com> wrote:
> symfony es framework(alguno dirá que algo más) de PHP, no un lenguaje en si
> mismo, así que todo lo que puedas hacer en php se puede con symfony.
>
> http://www.google.es/search?hl=es&client=firefox-a&rls=org.mozilla%3A...
>
> El día 6/02/08, Yusniel <yhidalg...@gmail.com> escribió:

Gustavo

unread,
Feb 6, 2008, 6:42:28 PM2/6/08
to symfony-es
Fe de erratas
*Debería decir:" Me gustaría hacer alguna puntualización:"
> extraido dehttp://www.buayacorp.com/archivos/mostrar-una-imagen-desde-blob-mysql...
Reply all
Reply to author
Forward
0 new messages