Foros del Web » Programando para Internet » PHP »

¿Se puede agregar una foto a una base de datos mysql?

Estas en el tema de ¿Se puede agregar una foto a una base de datos mysql? en el foro de PHP en Foros del Web. estoy haciendo un formulario donde coloco los campos de una persona para una empresa,pero ahora me pidieron que agregara una foto, alguien me podria explicar ...
  #1 (permalink)  
Antiguo 18/01/2013, 16:21
Avatar de andres_15_  
Fecha de Ingreso: septiembre-2008
Ubicación: Cali
Mensajes: 232
Antigüedad: 16 años, 2 meses
Puntos: 7
¿Se puede agregar una foto a una base de datos mysql?

estoy haciendo un formulario donde coloco los campos de una persona para una empresa,pero ahora me pidieron que agregara una foto, alguien me podria explicar como hacerlo
  #2 (permalink)  
Antiguo 18/01/2013, 16:24
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: ¿Se puede agregar una foto a una base de datos mysql?

Pues primero necesitas saber subir archivos, aquí el manual: http://php.net/manual/en/features.file-upload.php

Una vez que tengas el archivo lo que debes guardar en la BD es la ruta física del mismo para cuando lo necesites, posiblemente en un campo VARCHAR.

Así de fácil.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 18/01/2013, 16:30
Avatar de andres_15_  
Fecha de Ingreso: septiembre-2008
Ubicación: Cali
Mensajes: 232
Antigüedad: 16 años, 2 meses
Puntos: 7
Respuesta: ¿Se puede agregar una foto a una base de datos mysql?

Cita:
Iniciado por pateketrueke Ver Mensaje
Pues primero necesitas saber subir archivos, aquí el manual: http://php.net/manual/en/features.file-upload.php

Una vez que tengas el archivo lo que debes guardar en la BD es la ruta física del mismo para cuando lo necesites, posiblemente en un campo VARCHAR.

Así de fácil.
no vale coger con el formulario y colocarle examinar?
  #4 (permalink)  
Antiguo 18/01/2013, 16:33
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: ¿Se puede agregar una foto a una base de datos mysql?

Claro, esa es la primer parte de todo, pero no todo es automático.

Si se necesita un formulario con un campo file para "Examinar", pero también necesitas programar la subida así como la interacción con la BD por ti mismo.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 18/01/2013, 16:37
Avatar de andres_15_  
Fecha de Ingreso: septiembre-2008
Ubicación: Cali
Mensajes: 232
Antigüedad: 16 años, 2 meses
Puntos: 7
Respuesta: ¿Se puede agregar una foto a una base de datos mysql?

Cita:
Iniciado por pateketrueke Ver Mensaje
Claro, esa es la primer parte de todo, pero no todo es automático.

Si se necesita un formulario con un campo file para "Examinar", pero también necesitas programar la subida así como la interacción con la BD por ti mismo.
Muchas gracias, podrias por favo especificar que parte debo leer, es que no soy tan bueno en esto, apenas estoy aprendiendo.
  #6 (permalink)  
Antiguo 18/01/2013, 16:39
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: ¿Se puede agregar una foto a una base de datos mysql?

No hay una parte especifica, debes leer todo para que comprendas bien.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 18/01/2013, 16:43
 
Fecha de Ingreso: marzo-2012
Mensajes: 8
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: ¿Se puede agregar una foto a una base de datos mysql?

hola espero que te sirba
Código HTML:
Ver original
  1.  
  2. <form action="upload_file.php" method="post"
  3. enctype="multipart/form-data">
  4. <label for="file">Filename:</label>
  5. <input type="file" name="file" id="file"><br>
  6. <input type="submit" name="submit" value="Submit">
  7. </form>
  8.  
  9. </body>
  10. </html>
Código PHP:
Ver original
  1. <?php
  2. $allowedExts = array("jpg", "jpeg", "gif", "png");
  3. $extension = end(explode(".", $_FILES["file"]["name"]));
  4. if ((($_FILES["file"]["type"] == "image/gif")
  5. || ($_FILES["file"]["type"] == "image/jpeg")
  6. || ($_FILES["file"]["type"] == "image/png")
  7. || ($_FILES["file"]["type"] == "image/pjpeg"))
  8. && ($_FILES["file"]["size"] < 20000)
  9. && in_array($extension, $allowedExts))
  10.   {
  11.   if ($_FILES["file"]["error"] > 0)
  12.     {
  13.     echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
  14.     }
  15.   else
  16.     {
  17.     echo "Upload: " . $_FILES["file"]["name"] . "<br>";
  18.     echo "Type: " . $_FILES["file"]["type"] . "<br>";
  19.     echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
  20.     echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";
  21.  
  22.     if (file_exists("upload/" . $_FILES["file"]["name"]))
  23.       {
  24.       echo $_FILES["file"]["name"] . " already exists. ";
  25.       }
  26.     else
  27.       {
  28.       move_uploaded_file($_FILES["file"]["tmp_name"],
  29.       "upload/" . $_FILES["file"]["name"]);
  30.       echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
  31.       }
  32.     }
  33.   }
  34. else
  35.   {
  36.   echo "Archivo invalido";
  37.   }
  38. ?>

asi podrias solucionar la cuestion de guardado de la imagen y acuanto la base de datos relacionas el nombre o la direccion de almacenamiento y haces un aconsulta y la trae con un link
Código PHP:
Ver original
  1. echo'<a target="new" href".$dato['que trae la base dedatos'].">';
exitos
  #8 (permalink)  
Antiguo 18/01/2013, 16:44
Avatar de CMushroom  
Fecha de Ingreso: diciembre-2011
Ubicación: Morelos
Mensajes: 99
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: ¿Se puede agregar una foto a una base de datos mysql?

Parte 1 archivo "cargar_archivo.php"

<?php

if (@$_POST['enviado'] == 1)
{
$conexion = mysql_connect("localhost",'root','');
mysql_select_db("conamed",$conexion);

//obtenemos el archivo y sus caracteristicas
$archivo = $_FILES['archivo']['tmp_name'];
$tamaño_archivo = $_FILES['archivo']['size'];
$tipo_archivo = $_FILES['archivo']['type'];
$nombre_archivo = $_FILES['archivo']['name'];

//creamos un arreglo con los tipos de imagenes que vamos a aceptar
$mimetypes = array("image/jpeg", "image/gif", "image/png", "image/bmp");

if (!in_array($tipo_archivo,$mimetypes))
{
echo "El tipo de imagen no es valida: tipo_archivo";
exit();
}

switch($tipo_archivo)
{
case $mimetypes[0]:
$imagen = imagecreatefromjpeg($archivo);
break;
case $mimetypes[1]:
$imagen = imagecreatefromgif($archivo);
break;
case $mimetypes[2]:
$imagen = imagecreatefrompng($archivo);
break;
}

// Abrimos el archivo como solo lectura,leemos y el contenido lo asignamos a una variable.
$archivo_abierto = fopen($archivo, "rb");
$contenido = fread($archivo_abierto, filesize($archivo));
$contenido = addslashes($contenido);
fclose($archivo_abierto);

$consulta = "INSERT INTO tabla VALUES ('','$_POST[titulo]','$contenido','tipo_archivo')";
mysql_query($consulta,$conexion) or die(mysql_error());

header("Location: mostrar_imagenes.php");
}
?>

<form method="post" action="<?php $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">
<br>
<table width="600" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>Nombre de la imagen</td>
<td><input name="titulo" type="text" ></td>
</tr>
<tr>
<td>Tipo de Imagen (gif, jpg, png)</td>
<td><input name="archivo" type="file" ></td>
</tr>
<tr>
<td><input type="hidden" name="enviado" value="1"></td>
<td><input name="Enviar" type="submit" value="Enviar archivo"></td>
</tr>
</table>
</form>
  #9 (permalink)  
Antiguo 18/01/2013, 16:45
Avatar de CMushroom  
Fecha de Ingreso: diciembre-2011
Ubicación: Morelos
Mensajes: 99
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: ¿Se puede agregar una foto a una base de datos mysql?

2 parte agregar_imagen.php

<?php
header("content-type: image/jpeg, image/gif, image/bmp, image/png");

$conexion=mysql_connect("localhost","root","");// Conectamos con la base de datos
mysql_select_db("imagenes",$conexion);

if (is_uploaded_file($_FILES["archivo_usuario"]["tmp_name"]))// Comprovamos que se subio un fichero
{
if ($_FILES["archivo_usuario"]["type"]=="image/jpeg" || $_FILES["archivo_usuario"]["type"]=="image/gif" || $_FILES["archivo_usuario"]["type"]=="image/bmp" || $_FILES["archivo_usuario"]["type"]=="image/png")// Comprobamos el tipo de archivo
{
$imagenEscapes=mysql_real_escape_string(file_get_c ontents($_FILES["archivo_usuario"]["tmp_name"]));//Escapa caracteres especiales

//Agregamos la imagen a la base de datos
$resultado=mysql_query("INSERT INTO `imagephp` (anchura,altura,tipo,imagen) VALUES (".$informacion_imagen[0].",".$informacion_imagen[1].",'".$_FILES["archivo_usuario"]["type"]."','".$imagenEscapes."')",$conexion);
$id=mysql_insert_id();# Cogemos el identificador con que se ha guardado
}
else
{
$error="El formato de archivo debe ser JPG, GIF, BMP o PNG.";
}
}
else
{
$error="No ha seleccionado ninguna imagen.";
}
?>
  #10 (permalink)  
Antiguo 18/01/2013, 16:46
Avatar de CMushroom  
Fecha de Ingreso: diciembre-2011
Ubicación: Morelos
Mensajes: 99
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: ¿Se puede agregar una foto a una base de datos mysql?

3 parte mostrar_imagenes.php

?php
if (@$_GET['lista'] == 1)
{
$conexion = mysql_connect("localhost",'root',''); //conexion para ver imagen
mysql_select_db("conamed",$conexion);

$consulta = "SELECT * FROM tabla WHERE id = '$_GET[id]'";
$resultado = mysql_query($consulta,$conexion) or die(mysql_error());
$fila = mysql_fetch_array($resultado);
$imagen = $fila[2];
$tipo = $fila[3];

echo header("content-type: $tipo");
echo $imagen;
return;
}
?>

<table>
<tr bgcolor="#CCCCCC">
<td>Titulo</td>
<td>Tipo</td>
<td>Foto</td>
</tr>

<?php
$conexion = mysql_connect("localhost",'root',''); //conexion para mostrar tabla imagenes
mysql_select_db("conamed",$conexion);

$consulta = "SELECT * FROM tabla";
$resultado = mysql_query($consulta,$conexion) or die(mysql_error());

while($fila = mysql_fetch_array($resultado))
{
$id = $fila[0];
$titulo = $fila[1];
$imagen = $fila[2];
$tipo = $fila[3];
printf("<tr><td>%s</td><td>%s</td><td><a href='$_SERVER[PHP_SELF]?lista=1&id=$id'>Ver</a></td>",$titulo,$tipo,$id);
}
?>
  #11 (permalink)  
Antiguo 18/01/2013, 16:49
Avatar de CMushroom  
Fecha de Ingreso: diciembre-2011
Ubicación: Morelos
Mensajes: 99
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: ¿Se puede agregar una foto a una base de datos mysql?

la base de datos conamed

--
-- Estructura de tabla para la tabla `tabla`
--

CREATE TABLE IF NOT EXISTS `tabla` (
`id` int(100) NOT NULL AUTO_INCREMENT,
`titulo` varchar(100) NOT NULL,
`caratula` longblob NOT NULL,
`tipo` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM ;
  #12 (permalink)  
Antiguo 18/01/2013, 16:51
Avatar de CMushroom  
Fecha de Ingreso: diciembre-2011
Ubicación: Morelos
Mensajes: 99
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: ¿Se puede agregar una foto a una base de datos mysql?

En esta forma las guardas en codigo en una base de datos si lo que quieres es solamente subirla a una carpeta y despues mandarla traer con la ruta y visualizarla es mas facil.

Etiquetas: formulario, foto
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:22.