Incluir fotos en mi base de datos

Estoy realizando una pagina web en la cual quiero introducir en una tabla de MySQL grandes cantidades de datos, entre ellos imágenes...

La FAQ Incluir fotos en mi base de datos tiene

Pertenece a la categoría:
Pregunta
Estoy realizando una pagina web en la cual quiero introducir en una tabla de MySQL grandes cantidades de datos, entre ellos imágenes (fotos).


Dicha tabla podria ser con datos como por ejemplo: nombre, apellidos y foto.


La cuestión es que no encuentro información detallada para almacenar en la tabla las fotos que quiero que aparezcan al hacer una consulta en la tabla.

Respuesta de Miguel Angel Alvarez
En la tabla de la base de datos a la que te refieres hay, como dices, entre otros, un campo llamado FOTO.


En ese campo puedes guardar el nombre del archivo de la foto, por ejemplo "mi_foto.jpg"


Todas las fotos las debes guardar en un directorio llamado, por ejemplo, www.midominio.com/misfotos


Entonces, cuando incluyas esa foto desde la base de datos harías algo así:


<img src=http://www.midominio.com/misfotos/<?echo $nombre_archivo_foto;?> width=100 height=200>


La variable $nombre_archivo_foto deberías obtenerla desde la base de datos. Accediendo al supuesto registro del ejemplo, en el campo FOTO, deberías obtener el nombre del archivo de la foto, en este ejemplo, mi_foto.jpg. Con lo que el atributo src de la etiqueta IMG quedaría compuesto por el directorio donde está la foto y su nombre de archivo, lo que daría inequívocamente con la foto que deseamos.


Espero que lo entiendas. De todos modos, te diré que esta no es la única manera de incluir fotos en la base de datos. También puedes hacer campos de la base de datos que acepten datos binarios, como fotos u otro tipo de archivos.

Volver al árbol de categoríasVolver al árbol de categorías

Comentarios

JSR

04/1/2007
Lo tipos de datos blob de mysql te pueden almacenar cualquier tipo de archivo binario así sea imagen, documento de word etc.

http://www.buayacorp.com/archivos/guardar-una-imagen-y-su-miniatura-a-un-campo-blob-de-mysql/

En este articulo te dicen como guardar una imagen y su miniatura, incluso desde un formulario se puede, es decir que el usuario elija la imagen desde un directorio.

daliantinoo

09/2/2007
Yo he tenia el mismo problema, no sabía como introducir una foto en mi base de datos, ahora ya se como hacerlo, pero tengo un problema y es que en la tabla me sale un signo de interrogación en el campo fotos, y no se como quitarlo.

krishna

27/1/2009
La opcion que presenta Miguel Angel es mucho mejor...gracis Miguel

earboledac

20/8/2009
Gracias...
Gracias a los dos, sin embargo si me parece mas simple la opcion que da Miguel.

ahora, si por ejemplo, en la pagina web que se va a crear, es necesario que con el mismo identificador (id_nombre, por ejemplo) hay tres imagenes relacionadas, no hay forma de generar una repeticion del codigo para que se muestren las tres, en vez de copiar nosotros el codigo de llamado de la imagen?

No se si me explico bien, esta es la forma mas simple de expresar lo que quiero hacer...

Muchas Gracias

Edgard

14/12/2009
Buena idea
Yo lo hice guardando las direcciones de las fotografias en la base y las fotos en un directorio. Desde mi punto de vista es mas eficiente de esa forma

carlos

20/4/2010
fotos en una base de datos
estoy tratando de crear una base de datos en visual basic 6.0 con los datos del personal a mi cargo, lo que no puedo crear es que aparte de los datos tenga la foto de la personal, quisiera saber si alguien puede saber como hacerlo

Mariana

21/6/2010
Que conviene?
Hola! las dos opciones me parecen muy interesantes, pero ahora agrego una pregunta. Cual de las dos conviene? Cual hace la pagina mas rapida?
Gracias desde ya!

leidy

23/3/2011
ayuda
hola me pueden ayudar =(, necesito insertar una imagen en mi base de datos mysql ya tengo el formulario con los datos e inserta bien, pero no se como agregar ese codigo para las imagenes si me explican paso a paso me alegra este es el codigo q tengo:

<?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 "<p style='color: #ff0000; font-family: Verdana; font-size: 12px; font-weight: bold;'>No ha ingresado su Nombre.</p>";
}else{
if (!ereg("^([a-zA-Z ]+[a-zA-Z])$", $_POST['nombre'])) {
echo "<p style='color: #ff0000; font-family: Verdana; font-size: 12px; font-weight: bold;'>El formato de nombre solo debe contener letras</p>";
}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 "<p style='color: #ff0000; font-family: Verdana; font-size: 12px; font-weight: bold;'>BANDA REGISTRADA</p>";

echo "<META HTTP-EQUIV="Refresh" CONTENT="4; URL=registrarbanda.php">";
@mysql_close($conexion); // cerramos la conecion a la base de datos
}else{
echo "<p style='color: #ff0000; font-family: Verdana; font-size: 12px; font-weight: bold;'>Error al crear la cuenta</p>";
}


}
}
}

chiqui01

08/4/2011
Agregar fotos en una base de datos
Hola... soy nueva en programación php y mysql...

Estoy haciendo un sistema que almacene los datos personales y profesionales de docentes en una escuela pero no se como insertar la foto de cada uno de ellos y luego de almacenada aparezca junto con sus datos en un reporte.

Por favor, si me pueden ayudar se los sabre agradecer :-)

DAVID

18/4/2011
bien
esta pagina ta cagona XD, no es broma esta bn FELICITACIONES...¡¡¡

Dany

20/9/2011
Imagen a base de datos
Solución:
'Esta Función te convierte un picturebox.image a Binarios que puedes
'meter en un registro ej:
'fotostableadapter.insert(ImagenaRegistro(picturebox1.image))
Public Function ImagenaRegistro(ByVal MiPicturebox As Image)
Dim myMStream As New MemoryStream()
MiPicturebox.Save(myMStream, ImageFormat.Jpeg)
Dim byteArr As Byte() = myMStream.ToArray()
myMStream.Close()
Return byteArr
End Function
'Con esta Funcion recuperas los datos almacenados a un picturebox.image
Ej:
picturebox1.image = _
image.fromstream(RegistroaImagen(database.rows(0).intem(1))

Public Function RegistroaImagen(ByVal MiRowdata As Array)
Dim MiByte() As Byte = MiRowdata
Dim BytetoStream As New MemoryStream(MiByte)
Return Image.FromStream(BytetoStream)
End Function

Espero les sirva.. aplica en VB10 Ultimate
Saludos ;-)

Dany

20/9/2011
Imagen a BAse de DAtos Errata
Solución:
'Esta Función te convierte un picturebox.image a Binarios que puedes
'meter en un registro ej:
'fotostableadapter.insert(ImagenaRegistro(picturebox1.image))
Public Function ImagenaRegistro(ByVal MiPicturebox As Image)
Dim myMStream As New MemoryStream()
MiPicturebox.Save(myMStream, ImageFormat.Jpeg)
Dim byteArr As Byte() = myMStream.ToArray()
myMStream.Close()
Return byteArr
End Function
'Con esta Funcion recuperas los datos almacenados a un picturebox.image
Ej:
picturebox1.image = _
image.fromstream(RegistroaImagen(database.rows(0).intem(1))

Public Function RegistroaImagen(ByVal MiRowdata As Array)
Dim MiByte() As Byte = MiRowdata
Dim BytetoStream As New MemoryStream(MiByte)
Return Image.FromStream(BytetoStream)
End Function

Espero les sirva.. aplica en VB10 Ultimate
Saludos ;-)


se me fue un error y corrijo " Disculpas "

Solución:
'Esta Función te convierte un picturebox.image a Binarios que puedes
'meter en un registro ej:
'fotostableadapter.insert(ImagenaRegistro(picturebox1.image))
Public Function ImagenaRegistro(ByVal MiPicturebox As Image)
Dim myMStream As New MemoryStream()
MiPicturebox.Save(myMStream, ImageFormat.Jpeg)
Dim byteArr As Byte() = myMStream.ToArray()
myMStream.Close()
Return byteArr
End Function
'Con esta Funcion recuperas los datos almacenados a un picturebox.image
Ej:
picturebox1.image = RegistroaImagen(database.rows(0).intem(1)) ' aqui corregi mi error, ya que en la funcion lo habia convertido a stream je je je

Public Function RegistroaImagen(ByVal MiRowdata As Array)
Dim MiByte() As Byte = MiRowdata
Dim BytetoStream As New MemoryStream(MiByte)
Return Image.FromStream(BytetoStream)
End Function

Espero les sirva.. aplica en VB10 Ultimate
Saludos ;-)

MARCELO

02/4/2013
SUGERENCIA
CHICOS LO MEJOR SERIA NO GUARDAR LAS IMAGENES EN LA BASE DE DATOS YA QUE SI DESEAS ALMACENAR DEMASIADAS FOTOGRAFIAS LA BASE DE DATOS COLAPSARA

Loli Garcia Moreno

02/5/2013
Crear una base de datos, para colocar fotografias
Hola pertenezco a un grupo de exposición de fotografia antigua, y quisera que me expliqueis como puedo crear una base de datos para colocar todas las fotografias que recibimos y tenerlas ordenadas. Gracias y un saludo

Mario Gonzales

26/3/2014
Guardar en binario - imagen
Si bien es una muy buena idea guardar una imagen en la base de datos en un campo blob, no veo a nadie intentando recuperarla de la base de datos y por que su uso no es muy extendido, resumiendo el procesador de la CPU tendra que transformar el binario en una imagen, ie8 tiene algunas limitaciones con esto y en un movil será en promedio 6 veces mas lenta que si usas un src="imagen.jpg" leanse esto: http://css-tricks.com/data-uris/

Saludos a todos.
FAQ relacionadas

Para ver más FAQ relacionadas accede a las categorías:

Volver al árbol de categoríasVolver al árbol de categorías