Categories
Artí­culos PHP

Mostrar una imagen desde blob mysql usando PHP

Basándonos el artículo anterior de como guardar una imagen y su miniatura a un campo BLOB de mysql, ahora veremos como poder recuperar y mostrar esas imágenes.

Para que el script se muestre como una imagen necesitamos usar la cabecera Content-type y poner el tipo MIME de la imagen que recuperaremos de la tabla, esto es:

php:

header("Content-type: image/gif");
 

Donde image/gif es el el tipo MIME para una imagen GIF.

Desarrollo del Script

Las imágenes han sido guardadas en la tabla y tienen un único identificador representado por el campo idfoto, la imagen original se guarda en el campo foto, la miniatura en el campo thumb y el tipo MIME en el campo mime, como podemos ver en la estructura de la tabla:

sql:

CREATE TABLE `tabla` (
  `idfoto` int(3) NOT NULL AUTO_INCREMENT,
  `nombre` varchar(255) NOT NULL DEFAULT '',
  `foto` blob NOT NULL,
  `thumb` blob NOT NULL,
  `mime` varchar(40) NOT NULL DEFAULT '',
  PRIMARY KEY  (`idfoto`)
) ;
 

Necesitamos enviar parámetros al script para indicarle el id de la imagen que queremos ver, y también si queremos ver la imagen original o su miniatura, suponiendo que el archivo que contiene al script se llame verblob.php:

html:

<img src="verblob.php?idfoto=1&tam=1" alt="Imagen desde Blob" />
 

Donde el parámetro idfoto indica el id de la imagen, y el parametro tam indica si va a mostrar la imagen original o la miniatura (1 para mostrar la imagen original y 2 para mostrar la miniatura). El script trabaja de la siguiente manera:

php:

// Parámetros para recuperar la imagen
# Recuperamos el parámetro GET con el id único de la foto que queremos mostrar
$idfoto = (isset($_GET["idfoto"])) ? $_GET["idfoto"] : exit();
# Recuperamos el parámetro GET para elegir entre la miniatura o la foto real
$tam = (isset($_GET["tam"])) ? $_GET["tam"] : 1;
// Escojemos la foto real o la miniatura según la variable $tam
switch($tam) {
        case "1":
                $campo = "foto";break;;
        case "2":
                $campo = "thumb";break;;
        default:
                $campo = "foto";break;;
}
 

Ya sabiendo el id de la imagen que vamos a mostrar, hacemos la consulta a la base de datos:

php:

// Recuperamos la foto de la tabla
$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;   
 

Conclusiones

Los campos blob no solo nos permiten guardar imágenes, sino una gran variedad de datos, para mostrarlos solo hay que tener en cuenta el tipo MIME del archivo que hemos guardado, y al momento de recuperarlo sólamente utilizamos header con el Content-Type.

Elementos Utilizados

Referencias

Autor

Braulio Andrés Soncco Pimentel
Programador - Diseñador
braulio at buayacorp.com

265 replies on “Mostrar una imagen desde blob mysql usando PHP”

Muchas Gracias, Por fin un articulo senillo y que aclara las dudas de los usuarios con respecto a la visualizacion de los datos BLOB usando PHP

Despues de resolver diversos errores de varios codigos probados siempre me da el mismo error, incluso con éste mismo código facilitado en esta web.
El error ess el siguiente: "La imagen no puede mostrarse porque contiene errores"
Mi pregunta es: Puede tener algo que ver con mysql i su version? falta activar o desactivar algo en mysql? o en php?
Gracias a la gente como ustedes por ayudar de esta manera al desarrollo web!

Hola, primero felicitarte por el script, pero tengo el siguiente problema, hay un par de comentarios que ya lo han expuesto, pero porque solo funciona imagenes .gif y las demas extensiones no!!!

Gracias

Hola me parece muy interesante lo que planteas y muy bueno en los dos artículos, el de subir y bajar imágenes o archivos de campos blob, pero dime una cosa, yo tengo un programa hecho en Delfi el cual sube imágenes a una base de datos y las almaceno como campos blob pero al recuperarlas siempre me llegan con su tamaño original y quisiera saber si me pueden o me puedes dar una idea de como volverlas mas pequeñas o en miniatura.

Gracias.

Hola:

tengo un problema, no me sale la imagen ni ningun error ni nada :s no se cual es el problema.

tengo el html con la imagen con el src="verblob.php?idfoto=1&tam=1", y en verblob.php todo el codigo, no se cual puede ser el problema.

muchas gracias

ya he solucionado el problema, para las imagene jpeg, el problema esta basado enel tipo mime de las imagenes jpg actuales, que tienen el tipo mime pjpeg (jpeg progresivo) cualquier imagen que saques de photoshop es de este tipo.

lo que hay que hacer es insertar un if en el que si el tipo mime es image/pjpeg lo cambie por image/jpeg en el archivop de subida de imagenes.

asi se soluciona el problema, y funciona sin problemas.

¡Fantástica explicación de la utilización de imágenes con PHP y MySQL en español!

Aunque tengo un problemilla... no consigo ver ninguna imagen en el navegador. Parecen que tanto la original como la miniatura se guardan correctamente en MySQL pero no soy capaz de verlas en el navegador. En su lugar aparece el tí­pico aspa roja indicando que ahí­ deberí­a de aparecer una imagen.

¿Alguna sugerencia?

Gracias.

tengo el mismo problema que luis. Y al hacer: boton derecho 'mostrar imagen' me da el siguiente mensaje:Warning: Cannot modify header information - headers already sent by (output started at C:\home\verblob.php:8) in C:\home\verblob.php on line 67. No entiendo que hago mal. Gracias por cualquier indicación.

Ese error sale generalmente cuando hay alguna salida en el navegador antes del Header, revisa bien tu código.

Jaime, ese problema lo tuve yo y se soluciona modificando el valor output_buffering = Off por On en el archivo php.ini.

Ya consigo ver las fotos pero el campo BLOB es insuficiente para el tamaño de las fotos. Creo que será más adecuado utilizar MEDIUMBLOB para almacenar la foto original.

Luis:
output_buffering = Off por On en el archivo php.ini. soluciona el error pero no se abre la image. Por otro lado: SI abre la imagen ; por tanto el error lo tengo en php (.ini?) Se te ocurre que puede ser ?. Agradezco anticipadamente tu atención.

Luis:
despues de SI falta: img src="CIF Imago.GIF" alt="Imagen desde Blob" (con los limitadores no sube!)

No se por que veo solo el ascii de la foto...coloco bien la mime...probe todo...
ahi va el codigo:

\n";
#Efectuamos la consulta SQL
$result = mysql_query ("SELECT nro,foto FROM tabla")
or die("Error en la consulta SQL");
//------------------------------------
echo " \n";
echo " \n";
echo "Codigo \n";
echo "Foto \n";
echo " \n";

#Mostramos los resultados obtenidos
while( $row = mysql_fetch_array ( $result )) {
echo " \n";
echo "".$row["nro"]." \n";
header("Content-type: image/gif");
echo "".$row["foto"]." \n";
}
echo " \n";
mysql_close($conexion);
echo "fin";
?>

veo el resultado del nro y el ascii de la foto!
Si alguien sabe que pasa....ayudenme!
Gracias!

Esta es la primera parte que ahi no se ve:
\n";
#Efectuamos la consulta SQL
-------------------

Antes de mandar un header, nunca debes escribir algo.

En este caso tú estás poniendo echo "Codigo \n";, etc. Y más abajo está la cabecera header("Content-type: image/gif"); incluso escribes muchas cosas antes de la cabecera. Es por eso que no funciona.

Gracias braulio por tu respuesta....pero como inserto esto en una tabla sin poner nada antes?

Disculpa Braulio pero no entendi tu explicacion......mando mi mail por si tenes algun ejemplo: pfiaad@hotmail.com
yo quiero mostrar en una tabla el numero de foto y la imagen. Gracias!

hola, yo genere algo por el estilo pero tengo un problemilla a la hora de mostrar la imagen, mi problema consiste que llamo la foto desde un php bacio "sin etiquetas HTML" y funciona abre la imagen pero a la hora de insertar etiquetas HTML me salen un shingo de caracteres raros :S agradeceria si me pudieran ayudar 😀

este codigo: , es lo unico que hay que poner en HTML?

Exactamente q debe mostrar la pagina verblob.php, e tratado de ejecutarla y no logro ver nada ni en verblob.php y tampoco en el codigo html

este codigo es lo unico que hay que poner en HTML ....img src="verblob.php?idfoto=1&tam=1" alt="Imagen desde Blob"?

Hola a todos,Tengo un problemilla.... Ahunque logré mostrar la imagen en el navegador, solo puedo mostrar la foto y nada mas,......no encuentro la manera de poder escribir en la misma página de la foto...

Cuando se muestra solo código y Ondas que ni al caso donde debe aparecer la imagen es porque cuando se utiliza el header solo debemos mandar a imprimir la fotografía y debe haber solo el print o echo de esta.
Si alguien sabe como utilizar el echo mas veces se lo agradesco me lo idga...!
rammstein_taylor69@hotmail.com

Genial el codigo.....
Pero las imagenes JPG o Jpeg que parecen en la base de datos se muestran en el web unicamente hasta la mitad.. cual es el problema. el tamaño de las imagenes incluso es inferior a 100k..

Urgente ayuda!!!!

Ami me muestra peuro codigo ascii ya puse bien lo del header y nada. lo q hice fue borrar todas las etiquetas html y dejar solo php... y me aparece ahora un cuadrito con una x, no me sigue mostrando la imagen....

Hola, braulio, muy buenos los articulos. Me has sacao de bastantes dudas...pero tengo un problema. No me muestra la foto que he subido.

Si pongo lo que esta en html antes de lño ded php me aparece el tipico logo de cuando falta la imagen., y cuando lo pongo dentro del body, no me muestra nada,. Como hago=?gracias

A mi se me presentaron problemas parecidos (no podia ver las imagenes pero si estaban en la BD), no habia empleado el codigo tal cual como esta publicado, la unica diferencia era que en vez de definir la informacion de la base de datos (usuario, host, etc.) empleaba un include con esa info.
Como habia empleado la misma forma para ingresar la imagen a la base de datos sin mayor novedad nunca sospeche que en realidad era el include el que me estaba generando los problemas.
Alguien sabe porque este include me impide ver las imagenes?? Se trata de alguna rara excepcion?

Hola ami me funcionó el script pero en las imágenes grandes no me cargan completas, veo menos de la mitad de la imágen, supongo que sera porque on jpg progresivos, como comentaban algunos, por favor si alguien lo resolvio me lo podria enviar o publicar, muchas gracias

Me parece que descubri el problema, ahora lo voy a subir para ver, pero me fije las imágenes que me cargo por la mitad veia las propiedades y su peso era de 64kb y luego encontre esto:

Los campos tipo BLOD para almacenar el archivo binario. Su limite es de 65535 bytes (64 Kbytes), si desean almacenar archivos de peso superior deben de cambiar el tipo de campo "archivo_binaro" a un MEDIUMBLOB (16Mbytes max.) o a un LONGBLOB (4 Gbytes). Más info al respecto en:

http://www.mysql.com/doc/en/Column_types.html

Espero que les sirva porque el script lo veo muy útil

Lo hice y funciono perfecto, copien tal cual el script cambie la propiedad de la foto por `foto` MEDIUMBLOB NOT NULL, en lugar de
`foto` blob NOT NULL,
(para la columna de los thumb no hace falta ya que son mas chicos que 64 kb)

Asique quedaria asi:

CODE:

CREATE TABLE `tabla` (
  `idfoto` int(3) NOT NULL AUTO_INCREMENT,
  `nombre` varchar(255) NOT NULL DEFAULT '',
  `foto` MEDIUMBLOB NOT NULL,
  `thumb` blob NOT NULL,
  `mime` varchar(40) NOT NULL DEFAULT '',
  PRIMARY KEY  (`idfoto`)
) ;

Saludos

Para aquellos que queráis una imagen en la web con otros contenidos y os aparecen el error de header visitad esta web: http://www.fedeblog.com.ar/?comments=83

El problema es que con este script solo muestras una imagen y vosotros queréis montar una web a partir de este códiggo. Tenéis que escribir vuestro código y donde tenga que aparecer la imagen hacéis una llamada al script :
echo '';
De este modo aparecerà vuestra imagen!!

Espero no haberos liado más!!A10

Que tal braulio exelente ejemplo he tratado de ponerlo en practica pero tengo un problema al subir la imagen me sale este error

Fatal error: Call to undefined function: imagecreatetruecolor() in C:\Archivos de programa\PHP Home Edition 2\www\blob1.php on line 64

si alguien puede alludarme se los voy a agradecer mucho

Me gusto el articulo de subir imagenes y mostrarlas he trtado de hacerlo pero usando la base de MS SQL pero no lo he conseguido me podrian ayudar con eso

Holas Braulio:

Gracias por la ayuda recien me tope con esta pagina y me parece excelente la ayuda que prestas, acudo a ti por dos razones:
1. No pude hacer funcionar el script adecuadamente, si guarda las imagenes pero no las puede visualizar, ya posteaste que tienes el script completo me indicas donde por favor
2. debo realizar un script que busque en la bdd articulos y que muestre las fotos de cada articulo coincidente con labusqueda y que al hacer click en el se habilite un formulario de compra con sus datos. me puedes orientar en esto Gracias

Yo hago todo lo q aparece en su ejemplo. Pero al momento de hacer el echo $imagen me sale esto en el navegador: GIF87a2ã«ÄäUbr•«Ç€“«

Gracias por cualquier ayuda q me den.

Talvez falta el header("Content-Type: $mime"); revisa bien si realmente la cabecera manda una imagen.

bueno el codigo esta muy bueno y util lo ice andar a la perfeccion pero aver si alguien me puede solucionar esta problem que tengo. lo llamo desde dentro de una tabla y muestra la imagen que quiero mostrar, pero el problema viene cuando quiero listar varias imagenes en distintas partes de la tabla y llamo el codigo para mostrar la imagen varias veses y con un id distinto, bueno hay se caga todo y deja de funcar y no me muestra ni una ni otras pero si muestar en la tabla creada la precencia de una llamada al de la imagen.

desde ya muchas gracias y si pueden escribirme al mail joaquintschopp@gmail.com
o por aca tambien voy a andar...
gracias

Buenas, he probado el codigo todo bien, pero tengo una consulta, como puedo hacr si en vez de mostrar una sola foto quiero hacer una tabla de 2 x 2 para mostrar 4 fotos de una sola vez... o puede ser una tabla de 6 x2...bueno cualquiera sea el caso....se que la instruccion
datos = mysql_fetch_array($conn); extrae el array y lo voy mostrando con :
// La imagen
$imagen = $datos[0];
// El mime type de la imagen
$mime = $datos[1];

hasta alli todo bien,.,, pero como extraigo iamgenes consecutivas... cualquier consulta estoy en linea casi las 24 horas del dia... helymiguel@hotmail.com

Hola a todos... estoy tratando de hacer funcionar un script un poco mas sencillo que este pero cargo las imagenes bien en la base de datos pero no las logro mostrar... me aparece:

Warning: Cannot modify header information - headers already sent by (output started at d:\wamp\www\Javier\pag prueba2\descargar_archivo.php:2) in d:\wamp\www\Javier\pag prueba2\descargar_archivo.php on line 17
ÿØÿàJFIFHHÿÛC...... (GARABATOS)

y llamo a esta pagina desde otra con la siguiente instruccion:

?>

y me aparece este error:
Parse error: syntax error, unexpected '

hola... ya logre resolver casi todo... cuando trato de mostrar la imagen me aparece un recuadro con un X tal cual aparece cuando falta una imagen... como resulelvo eso¿? es lo unico que me falta por poner a funcionar...

Holas Braulio:

pues con el mismo pinche problema no puedo hacer que se visualicen varias imagenes al mismo tiempo, ya logre hacer funcionar todo el script a la perfeccion, pero el probelma es ahora con el header ya que no permite escribir otroas sentencias de escritira antes del header, sabes de alguna forma de evitar este problema y mostrar varias imagenes al mismo tiempo en una tabla. Vi que decias que debia enviarlo a otro archivo php perolo intente y visualiza solo la primera imagen de la consulta que hice por fa, necesito tu ayuda Gracias. si puedes enviame una respuesta a solovaer@yahoo.es

Este archivo sólo muestra una imagen, depende al parámetro que se le envíe...

Es decir si este archivo lo tienen que llamar cada vez que necesiten mostrar una foto.

Esto es:

HTML:

<img src='imagen.php?idfoto=1&#038;tam=1' alt='Imagen' />
<img src='imagen.php?idfoto=3&#038;tam=1' alt='Imagen' />
<img src='imagen.php?idfoto=2&#038;tam=1' alt='Imagen' />
 

No modifiquen el archivo de la imagen, simplemente úsenlo cada vez que necesiten mostrar una imagen.

hola Braulio sabes , te felicito por tu script PERO , me saliero n unos problemillas , me lee el numero binario de la foto , pero no me la muestra , he puesto el header en todos lados , el formato de mi foto es jpeg asi k modifique el header , pero al parece el header no me lo lee ya que compilo el programa con el header y em muestra el cod binario , ahora le saco el header y em muestra exactamente lo mismo , ojala puedas ayudarme ,

hola aun no me sale . cree otra pagina donde hiciera la consulta y rescatara la foto (blob) y el mime se lo asigno ya que no lo almacene en la base de datos , este es el codigo k ingrese en la pagina k mostraria la foto
------------------------------------------

Untitled Document

uf no se como poner codigo php aca .pero bue , el programa es super corto .solo hace la consulta para exxtrer la foto y abajjo un html simple .eso si antes del html hago todo .muestro la foto y pongo el header

Este es mi error, alguien puede decirme que significa exactamente?...muchas gracias

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhost/perrodecaza.com/home/html/verfoto.php:12) in /var/www/vhost/perrodecaza.com/home/html/verfoto.php on line 71
GIF89a22Ã

Hola ke tal!
Pues mi consulta es la siguiente. tengo una base de datos con muchos campos de texto y dos de fotos (blob) y queria sacar en el listado de toda la base de dates los datos y las fotos, pues bien el caso es ke me funciona todo pero las imagenes no me las saca y pongo esto

en el bucle while que mira cada registro . Pues bien me sale al error siguiente
Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in c:\wamp\www\php\prueba2.php on line 82

En cambio si no muestro las fotos de cada linea y pongo el mismo codigo de img al final de la pagina (fuera del while que consulta la base de datos) SI que me muestra las imagenes.
Lo que kiero es ke me muestre los datos y las imagenes pero no lo consigo en la consulta a la base de datos.
Si alguien me puede ayudar se lo agradeceria llevo 1 dia entero intentandolo!
puamix@hotmail.com

¡Hola Joan!

El 28 de Abril, pusiste un mensaje diciendo lo siguiente:

Despues de resolver diversos errores de varios codigos probados siempre me da el mismo error, incluso con éste mismo código facilitado en esta web.
El error és el siguiente: "La imagen no puede mostrarse porque contiene errores".

A mi me ocurre lo mismo. ¿Lograste saber a qué se debe el error?

saludos
menhir (menhir@QUITAESTOguhzi.net)

Hola a todos!

Pues yo ya resolvi el problema de los warnings y eso. ahora mi problema es que no visualizo la imagen con el echo $imagen; solo manda basura. Ya cheque el header("Content-Type: $mime"); y pues de todas maneras no funciona. Alguien sabe por que puede ser? Gracias

kcire7@gmail.com

Q tal? creo q lei todo lo q hay en la web sobre esto y no logo q se vea la imagen .. m aparece la crucesita esa y noc q hacer ..

el codigo esta exactamente copiado desde ak .. no le cambie absolutamente nada ..

hay algun error ?

gracias

NO PUEDO MOSTRAR UNA IMAGEN EN EN NAVGADOR ME APARECE La imagen “http://localhost/nidia/vrblob.php” no puede mostrarse, porque contiene errores. ALGUIEN MEPODRIA AYUDAR MI CORREO ES jpnidi@hotmail.com por favor es urgente

LOS FELICITO!

Muchas gracias, su explicación me permitió obtener las imágenes de una BD en MySQL, las cuales sólo visualizaba copiando y pegando el ascii en el notepad y guardandolas con la extensión correspondiente.

me dice q La imagen “http://www.rockandbyte.com.ar/verblob.php” no puede mostrarse, porque contiene errores.

no se como solucionarlo, AYUDA PORFA

1k gracias..

Cuál es exáctamente el código que pusiste? asegúrate que no haya ningún caracter que se esté escribiendo en el stream de respuesta...

Saludos

lo que no puedo creer es que por visualizar la imagen , despues no puedas escribir nada, osea despues de mostrar la imagen no se puede hacer esto por ej
echo "esto es un ejemplo";

alguien sabe como se puede imprimir por salida standard?

1k gracias.

Nando, el archivo donde muestras la imagen es un archivo aparte, tómalo como si fuera un archivo de imagen, y puedes llamarlo desde otra página en la que si vas a escribir el código, algo asi:

PHP:

<img src="archivoquemuestralaimagen.php?idfoto=1&#038;tam=1" alt="Imagen desde Blob" />"
<?php
echo "
esto es un ejemplo";
?>

El archivo que muestra la foto debe ser independiente de cualquier otro, asi si te funcionará, lee bien el artículo ahi lo expliqué asi.

Saludos

El articulo esta muy bién, y con esta explicación ya he logrado mostrar varias imagenes en una tabla, con su respectiva descripcion.

Hola, he estado intentando buscar un sitio que contenga como mostrar varias imgenes en una tabla de html y todos muestran ejemplos como este, que en definitiva no hace lo que estoy buscando. Porque mostrar el blob en una pagina perdida no cumple con mis necesidades. yo quiero previsualizar las miniaturas de las imagenes en una tabla y haciendo click sobre ella mostrar la imagen. Si alguien sabe como hacerlo porfavor indicarmelo. Muchas gracias.

Hola yo tenia el problema de las imagen en caracteres (gif 89 a ^*¨Ç*...). El problema son los include. Mas detalles sobre la solucion la tiene > de estos comentarios

Hola yo tenia el problema de las imagen en caracteres (gif 89 a ^*¨Ç*...). El problema son los include o require. Mas detalles sobre la solucion la tiene > de estos comentarios

Hola yo tenia el problema de las imagen en caracteres (gif 89 a ^*¨Ç*...). El problema son los include o require. Mas detalles sobre la solucion la tiene Raiden:comentario 31.

Saludos:

El problema que planteo es cómo recupero un Blob (foto jpg) en una variable para copiarlo en otra tabla. El script debe hacer una lectura y acumular el valor dentro de un While:

Select tabla origen + condicion
While(Select tabla origen ){
Truncate tabla destino
->los datos para el insert: entre ellos el Blob
Insert tabla destino
}

A ver quién sabe cómo hacerlo

Hola a tod@as!!
En primer lugar agradecer la colavoración de todo el mundo y la de Braulio en especial. Llevo ya cerca de una semana intentando mostrar un pdf que almaceno en un campo BLOB y lo único que conseguía era mostrar basurilla en el navegador, hasta que modifiqué el campo del php.ini output_buffering de Off a On, tal y como decía Luis en el decimotercer comentario.
Ahora el tema está en que al ejecutar la página me sale un alert preguntándome con qué programa quiero abrir el archivo. Selecciono el Acrobat Reader y me lo abre sin problemas, pero lo que a mi me gustaría es abrir el pdf en el propio navegador no con el programa en si.
No se si me explico, tal y como lo tengo ahora no me abre el pdf a traves del explorador, sino que primero arranca el Acrobat Reader y a continuación el archivo en el, quedándose la ventana del explorador en blanco.
Alguien tiene idea de pq puede ser?

Estoy migrando a una plataforma libre desde Windows, ya solucione el problema de las imagenes, vale decir, que no estoy migrando completamente, sino solo las paginas ASPX hacia PHP, la base de datos sigue en SQl Server 2005, y corre sobre el IIS.
Mi problema es que algunas imagenes se muestran solo una pequeña parte y la mayoria no se muestra nada solo la fastidiosa X roja, quisiera saber si hay algun equivalente a blob o medium blob o long blob de MySQL a SQL Server?
Yo estoy usando para mis fotos el campo de tipo "image" que viene e SQL Server, y no estoy pensando para nada activar el output_buffering de php.ini

Saludos desde Tingo María - Perú!!!!

Excelente el ejercicio me has sacado de una grave dificultad y entre todos me han ayudado a conocer mucho mas de php yo que soy principiante, muchas gracias a todos por los comentarios.

Nota: Llevo una recopilacion de todos los codigos (con ciertas modificaciones) que he ido chekando y los he ido subiendo a mi pagina aunque aun no esta lista.

Braulio me permitirias poner un link en mi pagina hacia esta pagina, y ademas me permitirias subir parte modificada de tu codigo, para asi poder compartirlo?
gracias ya tienes mi correo: dyegos000@hotmail.com

Hola, bueno yo tengo almacenadaas las imagenes en la base de datos y las puedo ver desde ahi, pero no puedo visualizarlas en una pagina web, soy principiante en esto de php y mysql y la vdd no he podido encontrar una solución si alguien me puede ayudar porke me urge mucho es para un trabajo de la escuela graciassss bye!!
les dejo mi mail por si algo princess_swanlake@hotmail.com

Hola

Muy bueno el tutorial, trate de hacer una modificacion y generar dinamicamente la foto pequeña mandando los parametros pero me sale solo el formato ansi pero no puedo convertir la foto almazenada en mysql nuevamente a una foto gif. para redimencionarla alguien tiene idea de como hacer eso

ES QUE TENGO UN PROBLEMA QUE ES MI CORREO NO TIENE IMAGENES PARA MOSTRAR A MI CONTACTO

ayudenme! necesito mostrar una imagen en una tabla y al lado debo mostrar la descripcion, ya probe unos codigos pero la imagen no se muestra me aparecen muchos simbolos

porfas debo terminar lo mas pronto posible

hola necesito ayuda
me encuentro en un problemon, pasa que tengo que mostrar unos logotipos,
me dicen que debo guardar la ruta en mi base de datos de mysql y al mismo tiempo copiar la imagen a una carpeta en el servidor, pero ya intente hacerlo y no me muestra la imagen, no se como puedo copiar el archivo a una carpeta del servidor.
el logotipo lo tengo que mostrar en una tabla de dos columnas
en la primera columna aparecerá el logotipo y en la segunda columna deben aparecer los datos.

porfavor si alguien tiene algun codigo que me saque de problemas se lo voy a agradecer infinitamente
hasta pronto

header("Content-type: image/gif"); expliqueme el funcioanmiento de esto.

si yo he creado la tabla por medio del administrador, entonces
; y verblob es el archivo donde esta guardado el scrip, pero como yo lo ise por medio de administrador q debo poner ahi (verblob).

Hola, Braulio: Buenísimos los temas!! . Necesito mostrar en una página html dos columnas una con miniaturas, la otra con descripción de cada una de ellas. Al pinchar la miniatura debe abrirse la imagen grande. Cómo reacondiciono los códigos ??? Es un tema de requerimiento de muchos navegantes, que te parece si lo incorporas como tema GENERAL, dale que podés, gracias por tus ayudas permanentes!.

Buenos dias, excelente explicacion del script, sobretodo por su sencilles.
Les queria preguntar. No existe un formulario para introducir el valor de la foto buscada y esta aparesca ?

A mi tampoco me mostraba las imágenes y es por las siguientes lineas:

$idfoto = (isset($_GET["idfoto"])) ? $_GET["idfoto"] : exit();
$tam = (isset($_GET["tam"])) ? $_GET["tam"] : 1;

Me salia la página en blanco. Eliminanado la comprobación de la variable con el isset si que me funciona.

$idfoto= $_GET["idfoto"];
$tam=$_GET["tam"];

La verdad es que no se porque pasa esto, pero despues de darle muchas vueltas esto era lo que me fallaba.

Tambien me he dado cuenta que si no ponemos el header tambien funciona. ¿Entonces por que es necesario ponerlo?
Ademas si subimos una imágen gif con el fondo transparente al crear el thumbnail le cambia el transparente por negro. (Por lo menos a mi me ocurre asi)

Hola, Braulio y demás participantes.
Tengo el archivo blob.php y funciona sin problemas cargando las imagenes.
Pero con el archivo verblob.php no consigo ver la imagen y lo único que imprime es la imagen pero con la famosa x y el alt="Imagen desde blob".
Me he leído todos los post y no veo la solución claramente de que puede ser, ahi dejo el código para ver si me ayudáis un poco entre todos.
Gracias y un saludo

Muchas gracias compadre te pasaste muy bien explicado y muy bien hecho esto he!!!
me encanto y la forma muy clara para explicarte
gracias
PayaZo Style 😛

Lo pario!!!. despues de trabajar tanto tiempo subiendo las imagenes a una carpeta y el link a la DB, encontre este script y me puse como loco, pero despues descubrí que dentro de un texto no se puede usar la imagen, jajajaja. otra vez para atras, jajajaja. Pero el script esta muy bueno, no se me ocurre donde se puede usar pero esta muy bueno, a si en una galeria de imagen tal vez aunque no se me ocurre como armar una sin tener una

comp puedo mostrar varias images al mismo tiempo, he tratado agregarle un While pero siempre muestra una sola. AYUDA.....

Hola amigo nose si conocen el Tinybutstrong es una belleza uno tiene su codigo PHP aparte y en el html uno pone solo referencias esta libreria hace una mezca de las variables que tiene en el php con las referencias da buen resultado... vean un poco de esto muy.. facilisimo hacerlo

Ahora yo uso esta libreria..
pero diran como:

Hago en un archivo aparte mi consulta php

include_once('cVis.php'); // OJO esta el la libreria q les digo...
include_once('CBase_datos.php'); // es mi controladora de base de datos

$sv=new ServiciosBD("pedidos"); //la conecciona a mi base de datos

$sb=$sv->BDSeleccionar('productos',$n,$m);// hago mi consulta

if (!$sb){
echo 'No fue posible ejecutar la consulta'.''.mysql_error();
}
else
{ $cont =1;
while ( $fila = mysql_fetch_array($sb) )
{
/// cargo una matriz con el resultado del select
$n1[$cont][1] = $fila['id_producto'];

$n1[$cont][2] = $fila['des'];

$n1[$cont][3] = $fila['precio'];

$n1[$cont][5] = $fila['nombre'];

$cont ++;
}

}
// esto es lo bueno declaro un objeto de la clase
$TBS = new clsTinyButStrong;
$TBS->LoadTemplate('novedades1.php'); // le digo el HTMl o donde
// me vaa mezclar las
// variables
$TBS->MergeBlock('blk',$n1);//me hace la mecla de todo

$TBS->Show(); // ahora q me muestre el formulario

?>

AHora el HTML SE LLAMA novedades1.php solo puse una parte por q lo demas son patrañas imagenes echo y tablas y adornos
me va mostrar foto + texto + precio en una tabla
NO IMPORTA SI HICE UN ECHO MIL VECES ANTES

Estas son
la novedades de la semana......

[blk;block=begin] /// defino un bloque y el nomble de la variable

//IMPORTANTICISMO!!!!!

//OJO ACA EN EL SRC PONGO LA FUNCION DE ARRIBA LA QUE TODO EL FORO CONOCE Y LE MANDO EL ID blk.1 QUE SEGUN EL PHP DE ARRIBA ES MI COD DE PRODUCTO

//BLK.2 ES EL NOMBRE SEGUN EL PHP DE ARRIBA
[blk.2] nuevo !!!!

//BLK.3 ES EL PRECIO SEGUN EL PHP DE ARRIBA
[blk.3]€ Comprar
ya!!

 

 

//ESTE ES EL FIN DEL BLOQUE de mezcla

[blk;block=end]

A la larga parce un poco feo pero intentanlodo es facil van ha ver y me muestra todo...FOTO + PRECIO Y LO QUE YO QUIERA JUNTO
NO HAY RECTRICCIONES DE NO HACER ECHO ANTES DE LA FOTO NI NADA !!

Saludos a todos los antecesores

Me han ayudado bastante los articulos publicados acerca de la programación PHP y MySQL. Sin embargo, me gustaría pedir una pequeña asesoría de los expertos en PHP y MySQL con respecto a la manera de mostrar imágenes en una tabla HTML junto con los demás datos de la tabla. Hasta ahora logré mostrar los datos en la tabla html pero las imágenes aparecen en puros códigos desordenados...

Espero que me puedan recomendar unos métodos

Muchas gracias

THOMAS T.

hola,como puedo subir o almacenar documentos.doc , pdf y gif a una base de datos postgres utilizando php.

no se si podrian ayudar!!!!!!

muchas gracias

Hola oye tengo un detalle lo que pasa es que no consigo ver la imagen...no me marca errores pero no me muestra nada aun....le agradeceria su aportación para la solucion de este problema....gracias bye

Hola a todos los usuarios de este medio...
Tengo un problemita es que Quiero mostrar varias imagenes jpeg...y la pagina no muestra nada ......si alguien me puede ayudar se lo agradeceria mucho....le mando saludos a todos los usuarios de este grupo
Le agradeceria si me ayudaran este es mi correo:
janrry_2020@hotmail.com
Gracias saludos

Hola a todos, mi problema es el siguiente, hace dias intento mostrar varias imagenes y sus respectivas descripciones de articulos usando el blob de mysql, y solo consigo mostrar una serie de caracteres: mi codigo es el siguiente, espero que me colaboren.

" width="150" height="150">

hola me gustaria saber como saco en pantalla aparte de la imagen que me sale alguna descripcion etc... cuales codigos deberia agregar?

y otra cosa:

existe alguna forma de que a medida de que se vayan agregando fotos a la bd estas vayan mostrandose en primer lugar , pongamos que tenemos un top 10 d imagenes y la medida de que se vayan subiendo nuevas estas nuevas vayan quedando primeras n este conteo..?

a ver si alguien me ayuda

muy buen tutorial!

Sitri, para lo primero necesitas de 2 páginas, una para recuperar la imágen de la base de datos y otra para recuperar las descripciones.

Sobre lo segundo, lo único que tienes que hacer es ordenar por el campo adecuado, Ej. asumiendo que tienes un campo fecha, entonces la consulta SQL sería:

sql:

SELECT img FROM fotos ORDER BY fecha DESC LIMIT 10

Hola, mi problema es que quiero mostrar imagenes png y solo me muestra el codigo fuente de la imagen, como lo puedo solucionar?

hola a todos por favor pongan todo el script completo
la etiqueta de se coloca dentro de php o fuera
ahoar por que para capturar la foto utiliza el metodo get y n no el post
graxias

Braulio:
Muchas gracias por tus aportes. Asi ayudas a muchos a mejorar y aprender.
Te agradeceria que me ayudes.
He seguido todos los pasos para mostrar laa imagen.En un momento todo salio muy bien.
Pero ahora no.
Tengo 3 archivos.
El primero llamado ver con formulario que envia al segundo listar_imagenes y ahi se invoca a verblog.php(mostrar la imagen)

El codigo del segundo es:
... conexion...

$sql = "SELECT id,archivo_nombre,archivo_tipo,archivo_peso,archivo_binario FROM imagenes";
$consulta = mysql_query($sql) or die ("No se pudo ejecutar la consulta");
while ($row = mysql_fetch_array($consulta,MYSQL_BOTH)) {
$id=$row[0];
echo"

$id
Nombre archivo: $row[1]
Tipo archivo (MIME formato): $row[2]
Peso: $row[3] bytes.";
}
me muestra:

1
Nombre archivo: 5955941.80x80.jpg
Tipo archivo (MIME formato): image/jpeg
Peso: 1864 bytes.

2
.......
.........

Te agradeceré que me des un poco de tu tiempo y me ayudes es importante para mi.
muchas gracias

cuando se invoca a verblog.php no llega a ejecuarlo.Le he hecho un seguimiento.
todos los archivos estan en el directorio raiz:C:

Para insertar imagenes en php com Mysql este codigo

$nombre_archivo=$HTTP_POST_FILES["imagen"]["name"]; //Nombre del archivo
$tipo_archivo=$HTTP_POST_FILES["imagen"]["type"]; //Tipo de archivo
$tamano_archivo=$HTTP_POST_FILES["imagen"]["size"]; //Tamano de archivo
$archivo = $_FILES["imagen"]["tmp_name"];

if ($nombre_archivo!="")
{ $fp = fopen($archivo,"rb");
$contenido = fread($fp,$tamano_archivo);
$contenido = addslashes($contenido);
fclose($fp);

$insertSQL="INSERT INTO imagenes (nombre_img, tipo_img, imagen) VALUES ('$nombre_img', '$tipo_archivo', '$contenido')";
mysql_select_db($database, $conexion);
$Result1 = mysql_query($insertSQL, $conexion) or die(mysql_error());
}

**********************************************
Con esto ingresara las imagenes en la base de datos ....espero que les sirva si tienen alguna duda escribanme a mi correo estuardo195@hotmail.com.....mucha suerte.

Gracias alex por atenderme asi como las personas que se interesan en ayudarme.

al ejecutar ver.php NO MUESTRA LA IMAGEN. Muestra todos los registros menos la imagen aparece una X y acontinuacion el texto asi:

X -> en lugar de la imagen
1
Nombre archivo: 5955941.80x80.jpg
Tipo archivo (MIME formato): image/jpeg
Peso: 1864 bytes.

X -> en lugar de la imagen
2
......................
..........

Si he tenido cuidado de no poner ningun texto en el archivo verblog.php

if(isset($_GET['id'])) {

datos de la conexion
.......
.......

$sql1 = "SELECT archivo_binario,archivo_tipo FROM imagenes WHERE id='1'";
$conn = mysql_query($sql1, $link1) or die(mysql_error($link1));
$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;
}
?>

Lo raro es que me funcionaba muy bien. pero ahora no

Gracias por su interes.

Prueba cambiando el content-type de la página a text/plain o text/html para ver que no esté mandando ningún error.

Hay la posibilidad de que lo cuelgues en algún lado? talvez asi te ayudaremos más

Hola a todos:
Hice el cambio a content-type igual no muestra la imagen-
En mi caso ver.php es HTML su codigo es:

El archivo listar_imagenes.php
Es el que extrae los datos de la BD.
su codigo:

$id
Nombre archivo: $row[1]
Tipo archivo (MIME formato): $row[2]
Peso: $row[3] bytes.";
}

?>

En este archivo con invoco a VERBLOG.PHP para que muestre la imagen.

su codigo:

HE NOTADO
estara bien

......CONTINUACION

Como dije este llamado con
desde listar_imagenes. PARECE que llega a ejecutarlo por que al inicio del mismo puse:echo "holla"; y tampoco lo muestra-ESTARA BIEN de listar_ imagen.php

Hola Alex. Hola amigos.
Para solucionar mi problema(NO MUESTRA LA IMAGEN) hay la posibilidad de que alguien me indiquen un sitio donde se muestre bien el tema que tratamos.
Tambien tratare de colgar en algún lado para que me ayuden.
Gracias

Obviamente con el cambio que te sugerí no debe mostrar la imagen, eso sólo era para detectar un posible error en verblob.php.

Te sugiero que depures tu aplicación con xdebug o uno por el estilo y veas realmente que está pasando, los comentarios que envías no ayudan mucho a solucionar tu problema...

En fin, espero que alguien más llegue a ayudarte, porque mi tiempo es algo limitado.

Saludos

Saludos a todos:
Una consulta: En un campo blob he guardado un archivo texto (doc).Quisiera saber como muestro este archivo.
Gracias por su atención.

hola, por favor si me pudieran ayudar, quiero visualizar la imagen pero me dice que requiero el GD 2.0 y el mio es 1.6 pues no se como hacer para ponerle el 2.0 he buscado en interner pero no encuentro, no se que me pueden sugerir, talvez tengo que desinstalar todo que version del php utilizo asi como el apache, mysql :S alguien me puede ayudar???? se lo agradeceria eternamente
Gracias de antemano

Luis, envía la cabecera Content-type:application/ms-word.

María, si estás en un hosting compartido, tienes que pedir que actualicen la versión de esa librería, si quieres hacerlo en tu entorno de desarrollo, sólo instala la última versión de PHP.

Saludos Alex y a todos los amigos.
He logrado insertar un archivo .doc (editado en word) en la BD.
Tengo un archivo php (verblog.php) que me muestra las imagenes
que tengo en esa BD.
Utilizo el mismo para mostrar este archivo .doc y no lo hace.
Me pueden ayudar.
gracias.

hola, bueno, yo estaba viendo el comentario de jaime, eso de cambiarle el output_buffering= off por output_buffering=on, pero el mio, en el ini, tengo como cuatro output_buffering y todos estan asi... output_buffering=4096.

pues, voy por este lado, porque el problema que tengo es que no visualiza mi imagen, todo esta muy bien aparentemente, cuando abro el explorador no me sale absolutamente nadal... no se como hacer, no se si alguien me puede ayudar me urge tengo que terminar un trabajo y tengo que entregarlo el LUNES ya se deben imaginar lo nerviosa y triste que estoy al no ver nada... gracias de antemano

María, me parece tienes algunos valores incorrectos, revisa la documentación para mayores detalles.

Por otro lado, también sería bueno que habilites la opción para mostrar errores, puedes hacerlo desde php.ini con display_errors=on o con la función error_reporting.

Hola, Gracia alex por tu respuesta, logre visualizar la imagen, pero ahora quiero visualizarlas todas, he hecho la prueva con un for y con while, pero nada con el for logre que me pinte la ultima que incerte jugando con el id, pero no quiero ni el ultimo ni el primero, quiero que me muestre todo, please!!!! como hago? que se me muestre todas las imagenees, necesito ayuda Gracias....

Primero que todo, pues felicitarlos ya que esta excelente este tutorial.

Hola maria esta es una pequeña forma de mostrar todas las imagenes de la base de datos

code:

//Conexión a la base de datos
include("../conexion.php");
$link=conexion();
$sqlQuery = "SELECT idFoto FROM imagenes";
$result = mysql_query($sqlQuery, $link);
//pregunto si tiene registros.
if ($row = mysql_fetch_array($result)){
?>
table width="150" border="1" cellspacing="0" cellpadding="0"
  tr
    td width="235" align="center" img src="verblob.php?idFoto=&tam=2" alt="Imagen desde Blob" /> /td
  /tr>
 
/table>
b>Aún no hay registros en la base de datos/b>/center>";
}
?>
 

PD: Completa las etiquetas XHTML, ya que de otra forma no se como se enviaban.

saludos, primero q nada darles las gracias x darse tiempo de ayudar a los demas...weno lo q quisiera solicitar es lo mismo pero mediante JSP osea recuperar una imagen si fuera posible desde DB2 usando JSP, espero q puedan ayudarme, nos vemos

hola gracias por el script es muy bueno todo funciona bien pero si lo quiero mostrar en una tabla no funca como puedo solucionar este problema alguien puede ayudarme
gracias

He estado cacharriando y he creado una pequeña solución que nos puede servir para crear una galeria, dandonos la posibilidad de mostrar los thumbnail en una tabla indicadonle de a cuantas columnas queremos que se organice.

code:

body>
?php
//Conexión a la base de datos
include("../includes/conexion.php");
$link=conexion();
$sqlQuery = "SELECT idImagen FROM imagenes";
$result = mysql_query($sqlQuery, $link);
//pregunto si tiene registros.
if ($row = mysql_fetch_array($result)){
echo "table width='150' border='1' cellspacing='0' cellpadding='0'>";
  echo "tr>";
        $sw=0;
        do {
//en este momento nos muestra de a tres columnas.
                if($sw != 3) {
                        echo "td width='235' align='center'>/td>";
                } else {
                $sw = 0;
                echo "/tr>";
                echo "tr>";
                echo "td width='235' align='center'>";
        }
        $sw= $sw + 1;
}
while ($row = mysql_fetch_array($result));
        echo "/tr>/table>";
} else {
echo "center>b>Aún no hay registros en la base de datos/b>/center>";
}
?>
/body>
 

Espero les ayude.

PD: completen la etiqueta de comienzo de HTML.

UPS ¡¡¡ en el mensaje anterior se me paso algo, pero aquí esta nuevamente corregido ....

code:

body>
?php
//Conexión a la base de datos
include("../includes/conexion.php");
$link=conexion();
$sqlQuery = "SELECT idImagen FROM imagenes";
$result = mysql_query($sqlQuery, $link);
//pregunto si tiene registros.
if ($row = mysql_fetch_array($result)){
echo "table width='150' border='1' cellspacing='0' cellpadding='0'>";
  echo "tr>";
        $sw=0;
        do {
                if($sw != 3) {
                        echo "td width='235' align='center'>img src='verblob.php?idImagen=".$row['idImagen']."&tam=2' />/td>";
                } else {
                $sw = 0;
                echo "/tr>";
                echo "tr>";
                echo "td width='235' align='center'>img src='verblob.php?idImagen=".$row['idImagen']."&tam=2' />/td>";
        }
        $sw= $sw + 1;
}
while ($row = mysql_fetch_array($result));
        echo "/tr>/table>";
} else {
echo "center>b>Aún no hay registros en la base de datos/b>/center>";
}
?>
/body>
 

hola a todos me encanta esta página x que todos se apoyan entre si.
Me podria alguien decir como verifico que si este guardada la foto en mi tabla, el ingreso lo hago con el codigo de la pagina de como guardar un blob y no tuve problema y al ejecutarlo me marca que ya se guardo pero en el momento de mostrar las imagenes tambien lo hice con este codigo y no me muestra mas que la crucesita asi que quisiera checar si si tengo guardada la imagen en la tabla.
de antemano gracias por su ayuda y si me pueden mandar algun ejemplo mi mail es: anaonotaz@hotmail.com

ok ok ya me ha salido la imagen la puedo ver pero mi idea ahora es hacerla que aparezca en un elemento de estilo para que se aplique a varias paginas se podria haceeeeeeer gracias de antemano, nos vemos pronto ok .....

Hola, muy buenas las explicaciones.
Mi problema es que consigo mostrar varias imagenes en una tabla, con vuestro ejemplo; pero lo que quisiera es que al hacer click en una de las imagenes me llevase a una pagina nueva donde muestre la imagen seleccionada, y otros datos. Y el problema es que no sé como recuperar la "id_imag" de la imagen selecionada a traves de la url, es decir como mostrar en una nueva pagina la imagen que he selecionado haciendo click en ella.
Si me pudiesen ayudar se lo agradezco enormemente.
Saludos.

Saludos a todos los amigos:
Quisiera ser sinceros con ustedes.He aprendido bastante con ustedes y importante apoyo.
Tambien decirles y donde se encuentren: FELIX AÑO NUEVO 2007. son mis mas sinceros deseos.
Luis Alberto

Kyle:
lo que tu necesitas lo hice con lo siguiente:

while ($row = mysql_fetch_array($result,MYSQL_BOTH)) {
$codley = $row[1];
echo"
a href='/paginas/imagenes_zonas.php?codigo=$codley'
img src='/paginas/vemini.php?id=$codley'
;
}

el enlace ponlo en una tabla (a href...)
table
tr
td...aqui ponlo td
tr
table
quise enviarlo el codigo completo pero en la vista previa
no aparece.
o sino enviame tu correo para pasartelo.

ojalá te sirva. Feliz Año 2007

Hola a todos! Este foro esta muy bien ha habido gente con el mismo problema que yo pero no había contestacion ya que seguramente las respuestan habran ido a su e-mail.
Bueno pues la cosa es que tengo que mostrar una imagen desde php consultando mysql y lo hago tal y como pone al principio pero la cosa es que me da el siguiente error y no se porque será.

------------------------------------------------------------
No se puede mostrar la imagen “http://localhost/MuseoPHP/prueba.php” porque contiene errores.
--------------------------------------------------

$conn=mysql_connect("localhost","root","");

if (!$conn)
{echo "ERROR: Conexión no establecida"; exit();}

//NOS CONECTAMOS A MUSEO
$bdmuseo=mysql_select_db("museo",$conn);

if (!$bdmuseo)
{echo "ERROR: Conexión no establecida con museo"; exit();}

// header("Content-type: image/gif");
$cons_ima="select imagen from museo where id_museo='1';";
//Cuando generamos con Java esta página, deberemos tener una variable que nos guarde un id o nombre del museo que estamos tratando

$result=mysql_query($cons_ima,$conn) or die("Error en la consulta contar el numero de exposiciones");
$row = mysql_fetch_row($result);
$imagen = $row[0];
// Gracias a esta cabecera, podemos ver la imagen
// que acabamos de recuperar del campo blob
header("Content-Type: image/gif");
// Muestra la imagen
echo $imagen;

Aqui os dejo todo el codigo y también mi correo nosekpone@hotmail.com.

Espero que alguien me pueda ayudar ya que es urgente.
Pues muchas gracias de antemano.

Que tal a todos.
Yo tenía el mismo problema que muchos:
PROBLEMA: No aparecía la imagen solo un X
SOLUCION: En mi codigo tenía un "include funcion.php", lo quite y funciono.
PROBLEMA:Aparecia solo el ascii de la foto...
SOLUCION: Faltaba el header("Content-Type: $mime")

Espero les sirva.

Saludos

Hola Buenas, Yo tengo un problemita que espero me podais solventar por favor.

Consiste en lo siguiente:

Cuando Yo creo un nuevo modulo para mi pagina web, tambien creo un archivo html, un index.php y una carpeta(images) ok hasta hay todo bien.

Pero despues cuando con mi editor de paginas webs(DreamWeaver) quiero modificar o añadir contenido al archivo html, me deja añadir contenido y hacer todo correctamente; Ahora biene el problema, cuando yo agrego una imagen, la inserto desde la carpeta que e creado(images) que esta dentro de la carpeta del nuevo modulo que e creado para mi web(las imagenes las meti previamente en la carpeta images.

Mi problema esta en que yo inserto las imagenes desde esa carpera despues guardo todo el contenido y subo el modulo entero al pft, osea subo la carpeta de por ejemplo: Sama y dentro de "Sama" va el archivo index.php, el archivo .html y la carpeta de imagenes con las imagenes que quiero mostar dentro, bueno pues yo las subo al ftp del host y cuando habro mi web, no se ven las imagenes, lo unico que aparece es un recuadro en blanco pero no se ve la imagen.

Me gustaria por favor que alguien me pueda contestar a la mayor brevedad posible muchas gracias.

Os dejo la url de mi web donde podreis apreciar el problema. Y gracias de nuevo.

Url:http://hopex15.host.sk/modules.php?name=Miembros

Msn:Sama_web@hotmail.com

Hola Buenas he estado viendo tu codigo y lo primero te felicito por tu trabajo pero yo no he conseguido mostrar la imagen se me guarda perfectamente y a la hora de mostrar no me da ningun error en el verblob.php pero la imagen se muestra con una cruz roja el es mismo codiga ya q lo copie y lo pegue. si sabe que me pode estar fallando se lo agradeceria ,Gracias un Saludo

Muy bueno tú código. El caso es que tengo un problema, el server tiene activado el SAFE_MODE con lo cual no puedo ejecutar algunas funciones como fopen(); fread(); fclose()... Me preguntaba si sabrías alguna forma de solucionarlo ya que así, guarda la imagen, pero no puede crear el thumb. Te pasteo la salida por si te sirve de algo.

Warning: fopen(): SAFE MODE Restriction in effect. The script whose uid is 10067 is not allowed to access /tmp/thumbtemp owned by uid 48 in /home/httpd/vhosts/asordes.org/httpdocs/probas/blob.php on line 68

Warning: fopen(/tmp/thumbtemp): failed to open stream: Success in /home/httpd/vhosts/asordes.org/httpdocs/probas/blob.php on line 68

Warning: filesize(): SAFE MODE Restriction in effect. The script whose uid is 10067 is not allowed to access /tmp/thumbtemp owned by uid 48 in /home/httpd/vhosts/asordes.org/httpdocs/probas/blob.php on line 69

Warning: fread(): supplied argument is not a valid stream resource in /home/httpd/vhosts/asordes.org/httpdocs/probas/blob.php on line 69

Warning: fclose(): supplied argument is not a valid stream resource in /home/httpd/vhosts/asordes.org/httpdocs/probas/blob.php on line 71

Fotos guardadas

Tal vez exista alguna forma de forzar a que se ejecuten estas funciones, o alguna otra forma de crear el thumbnail.

Gracias!!

me sumo a todas las felicitacion anterior mente señaladas
pero el cogido de modificar me presenta un error en el header me dice que no se puede modificar la informacion si me pueden ayudar seria genial de ante mano muchas gracias

Hola amigo,

muy interesante tu articulo, es lo k andava buscando, pero me puedes orientar k va dentro de cada archivo y los nombres k les diste, osea como distibuyes el codigo k ofreces en la pagina, de antemano gracias

Felicitacion por el código, pero tengo un problema, no con la imagen sino que al momento en que muestro la imagen no puedo mostrar nada mas en esa pagina...solo la imagen. Te agradeceria si puedes ayudarme...gracias.

Oscar, ese es el precio que se debe pagar por guardar imágenes en la base de datos, para mostrar algo más tienes que usar otra página...

Saludos

alguien tiene el ejemplo completo??

porfavor si alguien tiene el ejemplo completo se los agradecere un monton... porfa no entendi bien el ejemplo...

gracias

Alguien puede decirme como solucionar el problemita de que no muestra la foto, en su lugar sale un cuadro con una x roja...... ayudaaaaaaaaaa porfis

hola amigos. como puedo subir un archivo .doc(word) con php y mysql..necesito su ayuda.. gracias..

hola
gracias por los dos articulos, el de guardar el blob y el de mostrarlo en el navegador, realmente me sirvieron muchisimo para mi proyecto.

hola, el de mostrar la imagen en el navegador no me muestra ninguna imagen,corro en el navegador y no sale ningun error
solo sale la equis de que deveria estar una imagen, por favor si alguien puede ayudarme enviar a gineth_car@hotmail.com

gracias por la ayuda que me puedan prestar

Correccion de anterior:

Hola he probado tu script y si me funciona, puedo guardar imagenes como tambien reportarlas, pero mi consulta es esta:

1. ¿Es mas seguro o mejor guardar una imagen en la BD mysql o guardarla solo en el servidor ?

y otra mas, al guardar las imagenes no estoy guardando su tamaño pero necesito obtener el tamaño(alto y ancho) de una imagen que esta guardada en mi BD mysql.

Encontre esta solucion para imagenes almacenadas en el servidor y si funciona:

$tam = getimagesize("images/foto.jpg");
$width=$tam[0]; //obtengo el ancho
$height=$tam[1]; //obtengo el alto

Pero el problema es que yo no tengo almacenada mis imagenes en el servidor sino en la base y entonces intente hacer lo siguiente:
cuando llamo y muestro una imagen si lo muestra, y quiere decir que estabien esa ruta, entonces cuando quiero calcular con esa ruta el tamaño:

$tam = getimagesize("imagen.php?id=52");
$width=$tam[0]; //obtengo el ancho
$height=$tam[1]; //obtengo el alto

me sale error:

Warning: getimagesize(imagen.php?id=52)
[function.getimagesize]: failed to open stream: Invalid
argument

2. en que estoy fallando por que llamando una foto con la ruta del servidor si da y con la ruta de la base sale error, por favor, si me pueden dar solucion a este problema.

bytes.

Braulio estará ausente por un buen tiempo, pero intentaré contestarte:

1. Sobre guardar imágenes en la base de datos, depende de lo que estés intentando hacer, ambas maneras tienen ventajas y desventajas.
2.- Falla porque la función getimagesize toma una ruta física, ten en cuenta que "imagen.php?id=52" NO es una imagen.

Saludos

claro pero es la direccion para llegar a la imagen, entonces en todo caso cual seria la posible solucion??

Hola, encontre en los comentarios varias personas que tienen el mismo problema que yo, pero no vi algun comentario al respecto, bueno el problema es que en ves de salir imagen alguna o el cuadro con el tache rojo sale esto: "The image “http://189.145.225.236/xampp/Blob/pruebaBlob.php” cannot be displayed, because it contains errors.", alguien sabe que puede ser?????

Aqui esta mi correo por si alguien tiene alguna idea luismiguel_gm@yahoo.com.

Muchas gracias

Hola, mira, mi consulta es esta...

Supongamos que tenemos

...meta tags...

texto titular

parrafo del texto

mas parrafos

----------------------------------------------------------

Me dice que las headers ya estan enviadas, y bueno, logico, porque le estamos pasando por los meta tags que es Text/HTML, pero bueno, como seria para mostrar imagenes y que el navegador interprete el Mime-Type sin tener que usar HEADERS

Un Saludo

Sonic22

We'll be the "sons of liberty"

Si estás usando el método descrito en este artículo, entonces tienes que crear una nueva página sólo para recuperar una imagen a la vez.

Saludos

Encontre que el tutorial es muy bueno... Tengo una consulta:
Todo me resulta bien, pero excepto cuando quiero mostrar las imagenes en tabla.
Necesito saber que es lo que me falta para poder listar en tablas...

Hola gente, como vi en casos anteriores tambien tengo problemas para ver las imagenes , solo lo puedo hacer en formato ascii en la pagina, que sucede en el codigo que tengo hecho almacena las fotos en una base de datos MySql mediante el codigo PHP las guarda con "id" - "nombre" - "tipo" e " imagen" esta ultima en un BLOB, yo veia aca que solo a algunos que les han respondido les vi decir, sacale el header, o configura el gd2, o ponele una funcion src...etc etc , el problema es que yo tengo el php.ini bien configurado, header nada por que el codigo que me muestra la imagen esta por fuera, y la imagen no la muestro por src por que yo la pido directamente desde un link es decir cuando se carga la foto en la base nos muestra otra pagina que nos dice " la foto se ha cargado con el id :"" , el nombre "" si quieres verla has clik aqui : cuando me pasa a la proxima pagina para mostrarla ahi es donde me muestra el codigo ascii de la pagina.
Alguno sabe a ciencia cierta por que sucede esto si es un error del codigo o hay algo mal configurado por parte de la base

la misma es:

CREATE TABLE subir_imagenes (
id int(11) unsigned NOT NULL auto_increment,
nombre varchar(255) default NULL,
tipo varchar(255) default NULL,
imagen mediumblob NOT NULL,
UNIQUE KEY id (id)
) TYPE=MyISAM;

y no creo que este mal por que no es demasiado complicado.

Saludos y espero me puedan dar una respuesta.
Gracias

Bueno gracias por el script muuuuuuuuuuuuuuuchas gracias
ahora estoy viendo como adjunto otras cosas que queria ponerle gracias

Tengo una duda...
yo no tengo el thumbail por que no lo necesito ..pero si necesito mostrar la foto y todo funciona pero ahora se me ocurrio hacer 2 fotos en una tabla 2x2 ...que en la posicion 1.1 este la primera foto y en la posicion 2.2 este la segunda foto ...lo raro es que cuando quiero hacer las tablas o hago algun intento todo cambia a ascii....y me sale la foto en texto .... como puedo solucionar ese problema ??? alguna pista ?

De ante mano Muchas Gracias por la ayuda...

adios.

$idfoto = (isset($_GET["idfoto"])) ? $_GET["idfoto"] : exit();

Cuando se recibe la variable idfoto por método GET es posible reemplazar el contenido de idfoto por código SQL para inyectar en la consulta, esto podria ser peligroso... la forma de recibirlo podría ser:

$idfoto = (isset($_GET["idfoto"])) ? intval($_GET["idfoto"]) : exit();

También sería bueno dejar en la consulta la variable $idfoto entre comillas simples.

hola, no me muestra la imagen, tengo todo bien y lo unico que me muestra en pantalla es:
GIF89a

espero alguien me pueda decir donde esta el error, o porque no me muestra la imagen

He revisado todos los comentarios para ver si me ayudan pero no he podido solucionar mi proble.
Quiero hacer un sistema de manejo documental y pretendo que se escaneen los documentos recibidos y que se almacenen como pdf a la base de datos.
Lo de escanear desde PHP no ha sido posible aún. Entonces los escaneo desde el sw del scaner y los guardo en una carpeta y luego los cargo mediante codigo PHP a una tabla de la base de datos MySQL.
Quisiera ahora poder Mostar a los usuarios los pdf almacenados en la BD con la posibilidad de que en la misma pagina se muestren otros datos.
Quisiera saber si la única forma se logar esto es teniendo los archivos en carpetas o si lo puedo hacer directo de la BD.
Gracias

hola probe el script pero m marca error en esta linea del codigo: header("Content-type: image/jpeg");

hola soy dianet. quiero q me cambien la imangen por favor
vbbf v gcg cghdgf c h g tr ht yhntmgtgnfh mfhgfnftggtjlkñwkju.

Ejecute el script y funciono OK.
Pero tienes idea de como mostrar la imagen almacenada en la BD en un PDF.

Muy buena y clara la rutina.Según la codificación con este comando

verá la imagen correspondiente al código 1. Cómo hago para reemplzar 1 por una variable. Intenté de muchas formas pero sin resultado positivo , no logro utilizar la variable correctamente. Siempre aparece la cruz roja! Por favor me pueden reescribir este comonado usando variables en lugar del 1?
Muchas gracias!

en mi base de datos tengo muchos campor blob, es decir varias imagenes guardadas como hago para verlas todas con php

hola... mi script hace todo lo mensioado anteriormente.. ahora mi deceo es poder visualizar la imagen como un docuemnto pdf.
Tengo entendido que una forma de hacerlo es usando la libreria fpdf...
Me gustariá que me orientaran respecto a que es lo que debo hacer...

Hola gente saludos tengo un problema parecido tengo 10 registros en una tabla y cada registro tienes un nombre y una imagen ya previamente subida en un campo BLOB pero no me la muestran ninguna, quiero que me aparezca una lista nombre foto en al otra linea nombre foto asi susecivamente alguien ayudame robinsonarr@hotmail.com gracias

por equivocacion borre la imagen mas tierna que apareces en el set de imagenes que es la del bebe con la frazadita cubriendole la cabeza es posible que yo la pueda volver a recuperar ayudenme por favor gracias maria

De verdad que me ha funcionado a la perfeccion, muchas gracias por compartir este tipo de codigos con los demas!!!

Excelente trabajo!!

hola utilice el codigo presentado por uds,logro guardar la imagen pero no mostrarla me presenta basura o si no una X roja, no se cual puede ser el problema ya lo he revisado de pies a cabeza y no se q pueda ser a no ser que sea las versiones de mi dreamveaver o del MSQL.

HOLA QUERIA PREGUNTAR ESO NO PONE LENTA LA WEB? Y TRAE PROBLEMAS AL SERVIDOR DE BD DIGO NO SE MUCHO AL RESPECTO EL TEMA DIGAMOS Q QUIERO HACER UN ARCHIVO DE FOTOS?? COMO ES MEJOR REFERECIAR A LA FOTO O SUBIRLA A LA BD

Hola, he probado el codigo, guarda la imagen, pero no la muestra. Lo unico que he conseguido es usar la etiqueta a href="verblog.php" para crear un link, que si lo pulso me saca la foto, pero la etiqueta img scr="verblog.php" sigue sin funcionarme. Si os fijais las dos etiquetas llaman al mismo fichero pero el img no me sale. Agradeceria cualquier ayuda

Hola Braulio.
teng el priblema de que no se si estoy ejecutando los archivos correctamente, por un lado tengo el script verblob.php y por otro lado el script verimg.html, este script solo contiene esta líne a de código() que su pongo que al ejecutar este script automaticamente ejecuta el verblob.php y visuañiza la imágen, no se si la ejecución sea correcto? ya que al ejecutarlo solo me parece como si fuera abrir una imagen pero se cierra y no muestra nada solo me aparece el comentario "Imagen desde Blob"!.

me puedes ayudar de favor

bueno entre tanta discución no supe como hacer para q al mostrar la foto no apareciera la bendita X de foto no encontrada pero lo resolvi simplemente es una configuracion en el php.ini pero no se cual pero lo resolvi instalando el wamp5_1.6.5 y luego descomente en el php.ini la libreria gd2 y listo aparecieron las fotos y lo de q no se podia guardar la foto pequeña lo resolvieron mas arriba hay q guardar esa foto en los temporales del wamp en la carpeta tmp yo lo hice con la ruta relativa (../../tmp/) aunque esa carpeta se puede cambiar tbm en el php.ini
OJALA les sirva y gracias por la ayuda.

bueno ahora tengo otro problema hice una pagina donde hay varias celdas unas mas pequeñas con los thumb y otra mas grande para ver la foto completa , la foto me la redimensiona gracias a q pongo los tamaños en el pero al actualizar la pagina esa foto grande se pixela bastante pero al pinchar la foto pequeña se arregla q sera lo q pasa????? si alguien me puede ayudar PORFAVORRR se lo agradezco.

Excelente post Braulio Soncco he implememntado los dos scripts y los dos funcionan a la perfeccion gracias a esto pofdre darle una mejor presentacion a un proyecto de la escuela.
Muchas gracias
Saludos desde Mexico !!!!

hola una pregunta, tengo una pagina donde muestro datos almacenados desde mysql y mi pagina esta en php solo que muestro datos y quisiera mostrar imagenes, es decir si en mi tabla me aparace un 6 quiero que me aparezcan 6 imagenes, como lo puedo hacer??
De antemano gracias

hola he probado el codigo y al igual que muchos tengo el mismo problema de la cruz roja u no se visualiza la imagen, he tratado mucho y no logro resolverlo espero su ayuda y colaboracion

Utilizo ambos script y me funcionan perfectamente, pero cuando quiero mostrar la imagen dentro de una tabla con HTML, me sale los caracteres de la iagen, es decir, no me la muestra correctamente. Me puedes ayudar

Hola. tengo el problema que no me muestra la imagen solo una X, tego un formulario donde des un cargo la imagen, pero no me muestra nada.. solo la X, espero alguna ayuda .. ya que llevo tiempo en esto.. gracias.

no encontre lo que necesitaba

LLMARA UN AIMAGEN BLOB CON SU TEXTO DE DESRCIPOCION Y OTROS TEXTOS

Perdon por el ingles. Pero es que quiero cambiar
(img src="verblob.php?idfoto=1&tam=1)
el 1 del idfoto cada vez que hay una valor en un campo del mismo formulario html.

soy un principiante en php y mysql que alguien muy comedido me colabore y me envie el codigo ya corregido lo que pasa es que no veo la imagen por el navegador

pero ya logre guardarla y eso fue perfecto no hubo proble

gracias y saludos a todos

HOLA AMIGOS, ESTUVE MUY ATENTO A TODOS LOS COMENTARIOS REALIZADOS...

LO QUE QUISIERA AGRADECERLE A BRAULIO Y/O A LA (s) PERSONA(s) QUE LES FUNCO EL CODIGO, COMPARTIRLO POR ESTA VIA...

AGRADESCO LA ATENCION BRINDADA

hoberwilly@yahoo.es

hola a todos este es micodigo y la verdad no encuntro el error:

Insertar_Productos

<!--
function Enviar(form) {
for (i = 0; i

Alta_Productos

Nombre:
Descripción:
Precio:<input type="text" maxlength="6" size="6" name="txtPre" onkeypress="if (event.keyCode 57) event.returnValue = false;" />

Existencias:<input type="text" maxlength="6" size="6" name="txtExis" onkeypress="if (event.keyCode 57) event.returnValue = false;" />
Imagen:

<?php
$cve='';
$nom = $_POST["txtNombre"];
$des = $_POST["txtDesc"];
$prec = $_POST["txtPre"];
$exis = $_POST["txtExis"];
$imag = $_POST["fileImag"];
if($nom==null||$des==null ||$prec==null ||$exis==null ||$imag==null)
{
echo("Ahora puede insertar registros.");
}
else
{
$con=mysql_connect("localhost","root","");
if(!$con)
{
echo("No se pudo establecer la conexion con la el servidor de Base de Datos");
}
else
{
mysql_select_db("alejandre",$con);

$reg="INSERT INTO productos VALUES('".$cve." ', '".$nom."' ,'".$des."','".$prec."','".$exis."','".$imag."')";
$exec=mysql_query($reg,$con);
//$cve=null;
if($exec){

$cmmd="SELECT * FROM productos";
$exec2=mysql_query($cmmd,$con);
echo("");
echo(" \n ");
echo("Clave");
echo("Nombre");
echo("Descrición");
echo("Precio");
echo("Existencias");
echo("Imagen");

while($row = mysql_fetch_array($exec2)) {
echo("".$row["cve"]."".$row["nombre"]."".$row["descripcion"]."".$row["precio"]."".$row["existencias"]."\n");
}
echo("");
}
else
{
echo("Error");
}
}
}
?>

les pido que me ayuden.

HOLA A TODOS, ESPERO K LES SEA UTIL:

formulario.php
blob.php
verblob.php ...idem a los indicados(no modificarlos)

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

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

$sql = "SELECT * FROM nombre_de_tu_tabla ORDER BY precio ASC LIMIT 10";
$consulta = mysql_query($sql) or die ("No se pudo ejecutar la consulta");

While ($registro=mysql_fetch_assoc($consulta)){
echo "";
echo " Nombre archivo: ".$registro['producto'];
echo " Tipo archivo (MIME formato): ".$registro['mime'];
echo " Fecha de Ingreso: ".$registro['fecha'];
echo " Precio Compra: ".$registro['precio']."";
}

?>

y listo...

hola,,,
mi nombre es marlene

me encantan sus comentarios vivo en miami y resulta que me ha interesado trabajar con sql y php
he avanzado bastante ya tengo una base de datos completa y sin error

pero me encuentro ahora con una sorpresa no se cual es el otro paso para subirla o montarla; por ejemplo puedo hacerlo en dreamweare ?

estuve tambien mirando que existe word wench de mysql pero tampoco logro obtener ese sofware en fin alguien me puede decir despues que tengo la base de datos terminada que hago con ella

sin malos pernsamientos por favor , necesito ver la informacion

claro que tengo la carpeta en local host pero cuando habro dreamwere me complico mucho

hay alguna otra forma de verla que sea mas sencillo que dreamweare

saludos marlene

que todos tengan un hermoso dia

espero que alguien entiendra el trabalenguas que puse disculpen mi ignorancia con esto de la porogramacion , pero es fabuloso me encanta...

una pregunta...este script para mostrar el blob, se agrega al script anterior para guardar el blob (osea en blob.php) ?? o es un documento nuevo?

Parse error: parse error, unexpected '<' in C:\wamp\www\verblob.php on line 6

este es parte de mi codigo:

<?php
header("Content-type: image/gif");

...

alguien sabe como ayudarme?

Hola henry,
al parecer lo has modificado el codigo, prueba con:
header("Content-type:$mime");

Saludos,

Hola, estoy tratando de crear una pequeña encuesta para la cual necesito subir fotos en la base de datos, y navegando por la red me tope con este ejemplo, he logrado que se almacenen las imágenes en la base de datos pero ahora no logro como mostrarlas, he estudiado el código y lo he puesto en marcha, no me sale ningún error pero tampoco me muestra la imagen, y agradecería de antemano que a los que ya les funciona, por favor me pasen el código.

Gracias

Hola a todos!! agradesco el codigo proporcionado pero tengo el mismo problema que muchos han tenido es que la carpeta que almacena provisionalmente la imagen es:
define("NAMETHUMB", "/home/webcindario/m/a/masterpage/image/blob.php");
con eso logro que la imagen de tamano normal y su miniatura se almacen en la base de datos pero cuando quiero mostrarla no me sale ningun error quisiera saber porque agradesco que si alguien le salio el codigo me lo envie o me responda por este medio.

Atte. Steven
fernacasa@hotmail.com

Yo había tenido el mismo fallo que todos por una ligero fallo en la explicación. No podía ver la imagen. Hasta que se me ocurio que esa linea tenia que estar en algún sitio. He hice file=fichero=documento=archivo "nuevo" y lo llamé ver.htm
<ver

Gracias. Muchas gracias por el codigo. he visto otros codigos y no me funcionan. Gracias a este codigo, podre ver el fallo de los otros codigos. No sabia si error estaba en mi editor de mysql. aunque yo he cambiado
`foto` blob NOT NULL, por `foto` longblob NOT NULL,

html> head> Ver /head>
body>
img src="ver-blob.php?idfoto=1&tam=1" alt="Imagen desde Blob" width="50%" height="50%" />
img src="ver-blob.php?idfoto=1&tam=2" alt="Imagen desde Blob" width="150" height="100" />
/body>
/html>
le he quitado los "<"

Hola a todos en el foro, pues creo que he corregido casi todo los problemas a los que nos hemos enfrentado al manejar imagenes en PHP viniendo de una base de datos MySQL o MS-SQL:

1.- definir un campo de tipo BLOB si es mysql o IMAGE si es SQL
2.- checar la configuracion de su servidor WEB, si es apache en el archivo php.ini modificar las siguentes opciones:

===>output_buffering dejarla como output_buffering = On
===>mssql.textlimit descomentarla y dejarla como mssql.textlimit = 2147483647

espero les sea de ayuda esto, nos seguimos viendo por aqui

Hola a todos en el foro, pues creo que he corregido casi todo los problemas a los que nos hemos enfrentado al manejar imagenes en PHP viniendo de una base de datos MySQL o MS-SQL:

1.- definir un campo de tipo BLOB si es mysql o IMAGE si es SQL
2.- checar la configuracion de su servidor WEB, si es apache en el archivo php.ini modificar las siguentes opciones:

===>output_buffering dejarla como output_buffering = On
===>mssql.textlimit descomentarla y dejarla como mssql.textlimit = 2147483647

el codigo de archivo PHP que nos servira como visualizador es el mismo que se aporta al inicio de este foro, espero les sea de ayuda esto, nos seguimos viendo por aqui

Este post vá dirigido a todos aquellos que han conseguido visualizar la imagen PERO sólo visualizan UNA imagen.
Es posible que les falte alguna de las siguientes instrucciones en el programa (subprograma) que es llamado por el primero, especialmente la primera y la ultima instrucción, ya que la carencia de ellas no les produce errores pero tampoco produce el resultado deseado.
*********************************************************************************
if(isset($_GET['id'])) // Esta instrucción es IMPORTANTE !!!!
{
$sql = "SELECT imagen FROM $DBTable WHERE codigo='".$_GET['id']."'";
$consulta = mysql_query($sql) or die ("No se pudo ejecutar la consulta");
while ($resultado_array=mysql_fetch_array($consulta))
{
header("Content-Type: image/jpeg");
echo $resultado_array[0];
}
} //--------OJO con este fin if(isset($_GET['id']))
********************************************************************

Una pregunta como hago para que pueda sacar por ejemplo "Anderson" en el navegador y la foto almacenada en la base de datos, porque si pons algo antes del header() no se carga la foto.

Citando:
"Jaime
26 de Junio de 2005, 07:06:59 pm

tengo el mismo problema que luis. Y al hacer: boton derecho ‘mostrar imagen’ me da el siguiente mensaje:Warning: Cannot modify header information - headers already sent by (output started at C:\home\verblob.php:8) in C:\home\verblob.php on line 67. No entiendo que hago mal. Gracias por cualquier indicación."

Rpta: Este error sale cuando utilizas html e insertas php, debes escribir el código directamente en php

ese mismo problema lo tenia..... yo tengo codigo parecido al del ejemplo.... lo solucione poniendo en el espacio en donde queria mostrar la imagen algo asi>>>>> cabe destacar q lo q "ver.php" tiene el siguiente codigo para poder mostrar la imagen

y solamente eso....
jorto777@hotmail.com

lang:

include 'configimagen.php';
        $connection=mysql_connect("$bdservidor","$bdunombre","$bdpass")
or die("Error conectando a la base de datos");
$db=mysql_select_db("$bdnombre",$connection)
or die ("Error seleccionando la base de datos");
$result = mysql_query("SELECT content FROM upload WHERE id=3");
$result_array = mysql_fetch_array($result);
header("Content-Type: image/gif");
echo $result_array[0];

Hola chicos, tengo problemas con el dicho codigo, la imagen la recibe la base de datos pero no se ve en la web, no da ningun error, coloco el codigo a ver si tengo algun prblema,
//blob.php este el nombre de la pagina
?php
ob_start();
?>

y se deberia ver en en html

solo logro ver: Imagen desde Blob

Agradecia muchimo la ayuda

He leido varios de los comentarios anteriores pero no logro encontrar ninguno que me resulva mi problema.
Quiero mostrar un grupo de fotos de una base de datos para mostrarlas en una tabla, aqui pongo un ejemplo de lo que hago, sin mostyrarlas en la tabla. Lo que me devuelve como resultado en la primera imagen solamente, es decir la imagen que tiene id = 1, Se me muestra en el navegador esa solamente las demas ni por enteradas.

for($i = 1; $i < 3; $i++){

$r = mysql_query('select foto from fotos where id = '.$i);
$fila = mysql_fetch_array($r);
echo $fila['foto'];
}

Si alguien le sabe como ayudarme......
Gracias.

Hola chicos como estan, me han salvado necesitaba hacer esto para un trabajo y por fin lo he logrado , pero ahora tengo un problema, la tabla me muestra las primeras 4 imagenes y las demas no... no se que podra ser cambie el formato a mediumblob por si fuese el tamaño, pero tampoco no me aparecen, alguien me podria decir q puede ser... no me da error ni nada se almacenan supuestamente bien en la Base de Datos , pero no se por que no las despliega .......

hola espero alguien ma ayude
e probado el codigo y e leido todos los comentarios pero ahun no e podido mostrar la imagen me sale el tipico cuadro donde deve ir la imagen, es pero alguin me pueda mandar el codigo ya corregido de verblob.php mi correo es mario_leo12@hotmail.com

y si uno kiere una galeria por ejemplo que muestre las 10 ultimas entradas y que al darle click lo manda a la foto original.

Hola, tengo un problema con una tabla en sql. Las imágenes son .png, los campos son numFoto, nomFoto, imaFoto y mimeFoto. Pero en el campo "mimeFoto" no sé qué información colocar para cada fila de fotos, por lo tanto cuando intento abrir la tabla, me aparecen caracteres en lugar de imágenes. La fotos está almacenadas en un archivo de imágenes y creo que solo falta por resolver el mime. Puedes orientarme? Saludos.-

deseo calcular una formula de unos ciertos examenes de laboratorio ,el campo formula almacena los id de los item q me permitiran sacar el resultado ejemplo: campo fromula ((a+b)*(d/c))/100

esto funciona muy bien, muchas gracias. en un archivo (blob.php) guardo todos los datos y las imagenes, en otro (VerBlob_1.php) SOLICITO una imagen y desde éste llamo y le transfiero los paramertros al scrip (VerBlob.php). VerBlob.php muestra la imagen. todo bien, gracias nuevamente.

hola quiero saber como hago para subir un archivo en mu pag web de manera q yo sepa donde se guardo

Hola una consulta, si yo intento mostrar una imagen con esa forma que expones pero dentro de una tabla, me da error, sera por el header()??? a como lo muestras ya pude pintar la foto, ademas lo que intento es darle una ubicacion y un tamaño a la foto.

que facilidad tiene usted para definir nombres y procedimientos excelentisimo felicitaciones Dios le bendiga! y muchas gracias

hola ! primero que nada mis felicitaciones y agradecimieinto tambien por tamaños post que has hecho. Tanto el de carga comoel de muestra e imagenes.
Te escribo ademas para ahcer te una consulta sobre el tema de guardar imagenes en el discoo en la base.
Estoy trabjando en un sitio de alquielerespar que usuarios publiquen sus inmuebles, con hasta 4 fotos por cada uno.
Me conviene realmente guardar en la base o es mejor trabajarlas como archivos en un directorio ?.
Tener en cuenta un posible crecimiento de usuarios del sitio con el correr de los meses.

Bueno espero puedas despejrme esta duda.
TE dejo un saludo y gracias de nbuevo

Hola a todos tengo un problema ya que no consigo ver la imagen, solo una x roja,

ayuda prf . gracias

Hola!!! primero que todo agradecerte el aporte... te digo la verdad no se que le estoy errando

<?php

include("conexion.php");
$result=mysql_query("SELECT eventitu, evencara, evenimag, eventipo FROM eventos ORDER BY evencodi;"); // ejecuta el query

while( $row=mysql_fetch_array($result) ) // va asignando filas del recordset

{
$tit = $row['eventitu'];
$cara = $row['evencara'];
$eimag = $row['evenimag'];
$mime=$row['eventipo'];
header('Content-Type: $mime');
echo"$tit ";
echo"$cara";

echo"";

}
?>

me muestra esto::
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\cabas\index.php:84) in C:\xampp\htdocs\cabas\eventos2.php on line 18
Perros de la calle
Una obra de Francisco Gula y todo su elenco...

nò…XŽ*6Y"“6É}Nz(åBæØb‚õÕ¸cƒ:~ÈbŒBÉåö 靉^*'Ö’cB&œ½é£–V²É&”HbéeyN9¦_Øe¡~‚Ø#¡Ò‰hžmƹ¦[ŽrH¨uÚˆi£2–¸çŒ,Zºi

Aqui va . muchas gracis

<?php

include("conexion.php");
$result=mysql_query("SELECT eventitu, evencara, evenimag, eventipo, evennomb FROM eventos ORDER BY evencodi;"); // ejecuta el query

while( $row=mysql_fetch_array($result) ) // va asignando filas del recordset

{
$tit = $row['eventitu'];
$cara = $row['evencara'];
$eimag = $row['evenimag'];
$nomb=$row['evennomb'];
$mime=$row['eventipo'];

header('Content-Type: $mime');

echo"";

}

?>

holaaa como estan.. por fa necesito su ayuda tengo este codigo q me inserta datos en mi base de datos, ahora necesito agregar un campo foto y no se como hacerlo me pueden ayudar.. gracias amigo mi codigo esta asi :
<?php
/****************************************
CODIGO DE ENVIO DE FORMULARIO
*****************************************/
//Inicio del Codigo
if(isset($_POST['enviar'])) {
$nombre=$_POST['nombre'];
$guitarra=$_POST['guitarra'];
$logo=$_POST['logo'];
$musica=$_POST['musica'];
$foto=$_POST['foto'];
$email=$_POST['email'];
$genero=$_POST['genero'];
$piano=$_POST['piano'];
$bateria=$_POST['bateria'];
$vocal=$_POST['vocal'];
$bajo=$_POST['bajo'];
$estado=$_POST['estado'];
$ciudad=$_POST['ciudad'];

if($_POST['nombre'] == '') {
echo "No ha ingresado su Nombre.";
}else{
if (!ereg("^([a-zA-Z ]+[a-zA-Z])$", $_POST['nombre'])) {
echo "El formato de nombre solo debe contener letras";
}else{

include 'config.php'; // abrimos la conexion a la bd
//creamos la sentencia sql
$sql = "INSERT INTO banda VALUES (NULL,'$nombre','$guitarra','$logo','musica','$foto','$email','$genero','$piano','$bateria','$vocal','$bajo','$estado','$ciudad')";

if ($agregar = @mysql_query($sql , $conexion)){
echo "BANDA REGISTRADA";

echo "";
@mysql_close($conexion); // cerramos la conecion a la base de datos
}else{
echo "Error al crear la cuenta";
}

}
}
}

hola necesito su ayuda, tengo mi codigo q me inserta datos en mi base de datos, ahora necesito agregar una foto y no se como realizalo e leido mucho y n entiendo ayudenme.. gracias!! este es mi codigo:

<?php
/****************************************
CODIGO DE ENVIO DE FORMULARIO
*****************************************/
//Inicio del Codigo
if(isset($_POST['enviar'])) {
$nombre=$_POST['nombre'];
$guitarra=$_POST['guitarra'];
$logo=$_POST['logo'];
$musica=$_POST['musica'];
$foto=$_POST['foto'];
$email=$_POST['email'];
$genero=$_POST['genero'];
$piano=$_POST['piano'];
$bateria=$_POST['bateria'];
$vocal=$_POST['vocal'];
$bajo=$_POST['bajo'];
$estado=$_POST['estado'];
$ciudad=$_POST['ciudad'];

if($_POST['nombre'] == '') {
echo "No ha ingresado su Nombre.";
}else{
if (!ereg("^([a-zA-Z ]+[a-zA-Z])$", $_POST['nombre'])) {
echo "El formato de nombre solo debe contener letras";
}else{

include 'config.php'; // abrimos la conexion a la bd
//creamos la sentencia sql
$sql = "INSERT INTO banda VALUES (NULL,'$nombre','$guitarra','$logo','musica','$foto','$email','$genero','$piano','$bateria','$vocal','$bajo','$estado','$ciudad')";

if ($agregar = @mysql_query($sql , $conexion)){
echo "BANDA REGISTRADA";

echo "";
@mysql_close($conexion); // cerramos la conecion a la base de datos
}else{
echo "Error al crear la cuenta";
}

}
}
}

buenas estoy creando una base de datos para registro de empleado. tengo un problema a la hora de mostrar la foto e intentado de diferente manera pero no logro solucionar espero de su ayuda este es mi codigo fuente

Buscar:

<?php
}
else{
if ($_POST["buscador"])
{
// Tomamos el valor ingresado
$buscar = $_POST['cedula'];

// Si está vacío, lo informamos, sino realizamos la búsqueda
if(empty($buscar))
{
echo "No se ha ingresado un registro para consultar";
}else{
// Conexión a la base de datos y seleccion de registros
$conexion = mysql_connect("localhost","root","");
$sql = "SELECT * FROM empleado WHERE cedula like '%$buscar%'";
mysql_select_db("super", $conexion);

$result = mysql_query($sql, $conexion);

// Tomamos el total de los resultados
$total = mysql_num_rows($result);

// Imprimimos los resultados
if ($row = mysql_fetch_array($result)){
echo "Resultados para la cedula de identida: $buscar";
echo "Resultados encontrado: $total";

do {
//width='216' height='195'>"
echo "Datos personales";
echo "";
echo "";
echo "";
echo "";
echo "Sucursal:".$row["sucur"]." \n";
echo "";
echo "Nombre:".$row["nombre"]."\n";
echo "";
echo "Apellido:".$row["apellido"]."\n";
echo "";
echo "Fecha de Nacimiento:".$row["fecha_n"]."\n";
echo "";
echo "Fecha de Ingreso:".$row["fecha_i"]."\n";
echo "";
echo "Statud:".$row["statu"]."\n";
echo "";
echo "Cargo:".$row["cargo"]."\n";
echo "";

echo "";
echo "";

} while ($row = mysql_fetch_array($result));
} else {
// En caso de no encontrar resultados
echo "No se encontraron registro para: $buscar";
}
}
}
}
?>
Nueva Busqueda

no me arroja ningún error solo muestra el icono donde debería aparecer la foto.

Gracias Braulio!!!! me salvaste la vida.
Talvez a alguien le sirva mi aporte, esto fue lo que hice:
a) crear un archivo img.php con lo siguiente:
-------------------------------------------------------------------

--------------------------------------------------------------------
b) luego en otro archivo php puse esto:

------------------------------------------------------------------

 
 
 
<?php echo ''?>

<?php
------------------------------------------------------------------
tuve el problema de no saber como pasar la variable de PHP a HTML y lo solucione colocando '.$variable.'

Saludos, espero le sirva a alguien..

alguien tiene la solucion para mostrar la imagen, en vez de la X o el mensaje :

"No se puede mostrar la imagen “http://localhost/guardarImage/showImage.php” porque contiene errores."

Sigo los pasos de la segunda parte del formulario pero no me muestra las fotos no se como funciona. Te pido por favor me eches una mano. Muchas gracias.

Si el campo blob es cargado con el codigo anterior, este codigo no deberia andar, debido a que falta stripslashes, ya que se le habia hecho add antes de cargar la imagen para escapar los caractares..
salutes

una pregunta existe un version de este proceso o algo similar en jsp?. y gracias por el ejemplo es muy util. me ayudo, sin embargo ahora lo quieren en jsp

muy bien por el post +10mi problema es q no se como pasar el valor del id de la foto, es decir yo quiero q me haga una busqueda y me muestre la foto pasando el id de esta,

he visto que varios han solucionado el problema pero yo aun no
al insertar en la base de datos me sale este error pero de todas maneras inserta me podrian ayudar

Warning: imagejpeg() [function.imagejpeg]: Unable to open '/tmp/thumbtemp' for writing: No such file or directory in C:\xampp\htdocs\xampp\pruebas_imagenes\index.php on line 52

Warning: fopen(/tmp/thumbtemp) [function.fopen]: failed to open stream: No such file or directory in C:\xampp\htdocs\xampp\pruebas_imagenes\index.php on line 68

Warning: filesize() [function.filesize]: stat failed for /tmp/thumbtemp in C:\xampp\htdocs\xampp\pruebas_imagenes\index.php on line 69

Warning: fread() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\xampp\pruebas_imagenes\index.php on line 69

Warning: fclose() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\xampp\pruebas_imagenes\index.php on line 71
Fotos guardadas

y al msstrarlas no me sale nada

ya se porque aveces no muestra imagen, solo un cuadro con x roja, es porque en el proceso de conversion de imagen a binario o binario a imagen esta agregando una linea completa en blanco a la imagen codificada, esto lo puedes ver si descargas la imagen y la abres cambiando la extencion a .txt y la comparas haciendo lo mismo con la original...

Bueno ya descubri algo pero no se como solucionarlo, agradesco su ayuda

descubri otra cosa, no se esta guardando o recuperando de la base de datos la fotos de forma completa, almacena solo una parte de los bytes de la imagen, ese es el problema, alguna pista de que es lo que puede estar pasando?

`foto` blob NOT NULL, ---> longblob

en la base de datos tienes que cambiar el tipo de la tabla foto, ya que se creo como blob, lo cambiar por longblob, y listo ya podes guardar imagenes de mayor tamaño

Comments are closed.