Foros del Web » Programando para Internet » PHP »

Insertar imagenes en MySql

Estas en el tema de Insertar imagenes en MySql en el foro de PHP en Foros del Web. quisiera saber como insertar imagenes en un campo de una BD en Mysql...
  #1 (permalink)  
Antiguo 12/08/2006, 14:58
 
Fecha de Ingreso: agosto-2006
Mensajes: 4
Antigüedad: 17 años, 8 meses
Puntos: 0
Insertar imagenes en MySql

quisiera saber como insertar imagenes en un campo de una BD en Mysql
  #2 (permalink)  
Antiguo 12/08/2006, 17:07
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 18 años, 10 meses
Puntos: 2
http://www.forosdelweb.com/f18/tutorial-ejemplo-subir-archivos-bd-guardando-bd-binario-127775/
  #3 (permalink)  
Antiguo 12/08/2006, 21:50
Avatar de Bellenger  
Fecha de Ingreso: noviembre-2004
Ubicación: En un lugar del Mundo...
Mensajes: 599
Antigüedad: 19 años, 5 meses
Puntos: 4
No es adecuado insertarlos en la bd...

hola, a mi parecer y creo al de muchos, insertar una imagen dentro de una bd, no es lo recomendable, es mejor que estas imagenes esten en una carpeta, y que en la bd, solo guardes la ruta del archivo, y al momento de hacer la consulta solo redireccionas. Eso de guardar en una bd la imagen hace que se vuelva lenta, y ademas haria pesar demasiado a la bd, y eso no es correcto a mi parecer. bueno espero haberte ayudado jij
  #4 (permalink)  
Antiguo 12/08/2006, 22:35
Avatar de vevni  
Fecha de Ingreso: julio-2005
Ubicación: cancun mexico
Mensajes: 598
Antigüedad: 18 años, 9 meses
Puntos: 3
el thread de arriba es bueno, leelo si es una bd con pocas imagenes, no hay porblema, solo cuando son muchas imagenes, se vuelve lento. ademas mysql no maneja los tipos blob muy bien como otros manejadores.
__________________
Código PHP:
echo"hola mundo ver 1221332143.02";
echo
"cuantos usuarios habran impreso hola mundo en el mundo.!???"
  #5 (permalink)  
Antiguo 12/08/2006, 23:00
Avatar de jimadri  
Fecha de Ingreso: julio-2006
Ubicación: Buenos Aires
Mensajes: 487
Antigüedad: 17 años, 10 meses
Puntos: 1
Hola A Todos.
Necesito Hacer Una Galeria De Imagenes Con Animales Perdidos Para Ser Publicada En Internet.
Lo Que Necesito Es Saber Como Es El Tema De La Base De Datos Ya Que No Se Debe Poner Imagenes En La Db.
Y Lo Que Quiero Que La Publicacion Sea Automatica.
Desde Ya Gracias.
  #6 (permalink)  
Antiguo 13/08/2006, 00:22
 
Fecha de Ingreso: agosto-2005
Mensajes: 53
Antigüedad: 18 años, 8 meses
Puntos: 0
tenes que crear un formulario con uploader de imagenes y que la database guarde el path, en maestrosdelweb hay varios tutos
__________________
"el cliente siempre tiene la razón":arriba::stress:
  #7 (permalink)  
Antiguo 13/08/2006, 01:00
Avatar de fer10  
Fecha de Ingreso: octubre-2005
Ubicación: Guadalajara - Mexico
Mensajes: 905
Antigüedad: 18 años, 6 meses
Puntos: 4
yo en lo personal cuando hago sisitemas que dependen con columnas de una imagen las subo a la bd, nunca he tenido porbelmas con las imagenes, solo las exporto jpg cuando se van a leer muy continuamente, por el cache y ahorrar proceso en el servidor, en otro caso no.. y simpre tengo un respaldo de la image en la bd..


http://www.rinconastur.net/php/php86.php <-- aqui te explica como hacerlo..
__________________
Saludos
FT.
www.fernando.com.mx
  #8 (permalink)  
Antiguo 13/08/2006, 01:52
Avatar de tupajz  
Fecha de Ingreso: julio-2006
Mensajes: 55
Antigüedad: 17 años, 9 meses
Puntos: 1
para insertar imágenes en la base de datos
1)Supongamos que tu tabla se llama imagenes y tiene 3 atributos que son los siguientes:
id (autonumeric), nombre (varchar), imagen(blob)

2) deberas tener una carpeta imagenes y crear un archivo denominado por ejemplo genera_imagen.php puedes usar un código similar al siguiente:

<html>
<head>
</head>
<body>
<form action=<?php echo $_SERVER['PHP_SELF'] ?> method="post" >
file<input type="file" name="file" />
<input type="submit" name="submit" value="Ingresar Imágen"/>
</form>
</body>
</html>

Código PHP:
<?php
//CONEXIÓN a la base de datos
  
$host="localhost";
  
$usuario="root";
  
$pass="";
  
$db="nombre_db";
  
$conecta=mysql_connect($host,$usuario,$pass);
  if(!
$conecta)
    die(
'Error al conectarse con MySQL: ' mysql_error().' <br>Número del error: '.mysql_errno());
  if (! @
mysql_select_db($db,$conecta))
  {
    echo 
"No se pudo conectar correctamente con la Base de datos";
    exit();
  }  
if (isset(
$_POST['Submit']))
{
//SUBIR UNA IMÁGEN A UNA CARPETA ESPECÍFICA Y GUARDAR EL NOMBRE EN UNA VARIABLE


  
$destino 'imagenes/' 
  
move_uploaded_file $_FILES 'file' ][ 'tmp_name' ], $destino '/' $_FILES 'file' ][ 'name' ]); 
  
$name = ($_FILES['file']['name']);//así obtienes el nombre de la imágen


    
    
$image imagecreatefromjpeg('imagenes/'.$name);
    
ob_start();
    
imagejpeg($image);
    
$jpg ob_get_contents();
    
ob_end_clean();

    
//introducir la imágen  
   
    
$jpg str_replace('##','\#\#',mysql_escape_string($jpg));
    
    
$result mysql_query("insert into imagenes(nombre,imagen) values ('$name','$jpg')");  
}
?>
3)Y listo

Espero que te sea util.
Un saludo.

Última edición por tupajz; 13/08/2006 a las 01:57
  #9 (permalink)  
Antiguo 13/08/2006, 12:57
Avatar de fer10  
Fecha de Ingreso: octubre-2005
Ubicación: Guadalajara - Mexico
Mensajes: 905
Antigüedad: 18 años, 6 meses
Puntos: 4
olle con
Cita:
$image = imagecreatefromjpeg('imagenes/'.$name);
que pasa si subo un gif, o un bmp ?


no creo que se recomedable ese script =(
__________________
Saludos
FT.
www.fernando.com.mx
  #10 (permalink)  
Antiguo 13/08/2006, 17:19
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 18 años, 10 meses
Puntos: 2
Cita:
Iniciado por Bellenger Ver Mensaje
hola, a mi parecer y creo al de muchos, insertar una imagen dentro de una bd, no es lo recomendable, es mejor que estas imagenes esten en una carpeta, y que en la bd, solo guardes la ruta del archivo, y al momento de hacer la consulta solo redireccionas. Eso de guardar en una bd la imagen hace que se vuelva lenta, y ademas haria pesar demasiado a la bd, y eso no es correcto a mi parecer. bueno espero haberte ayudado jij
Yo pienso igual, pero hay mucha gente que piensa distinto

Cita:
Iniciado por fer10 Ver Mensaje
olle con que pasa si subo un gif, o un bmp ?

no creo que se recomedable ese script =(
Eso no es mayor problema, con ayuda de los MIME's y un rato lo adaptas para tus necesidades (no todo codigo que te ayude viene preparado para ti ).

Saludos.
  #11 (permalink)  
Antiguo 08/08/2007, 13:45
 
Fecha de Ingreso: agosto-2007
Mensajes: 3
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: Insertar imagenes en MySql

Utiliza Arreglos para solucionar eso...

Observa ;)

$variable= array(".gif",".jpg",".png",".jpeg",".bmp");

luego utilizas el explode

para separar las extensiones o formatos del nombre del archivo

o como dice Dario utiliza MIMES

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

si necesitas ayuda solo postea ...

bye
  #12 (permalink)  
Antiguo 08/08/2007, 15:58
Avatar de josefferhn  
Fecha de Ingreso: agosto-2007
Ubicación: Tegucigalpa, Fco Morazan
Mensajes: 27
Antigüedad: 16 años, 8 meses
Puntos: 0
De acuerdo Re: Insertar imagenes en MySql

Prueba con este codigo:

Pagina = "Upload.php"

<?php
$Fecha = date("Y-m-d");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>:: Agregar Noticias ::</title>
</head>

<body>
<table width="400" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><h3>Subir Imagenes de Noticias </h3></td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td><form action="Val_Upload.php" method="post" enctype="multipart/form-data" name="form1">
<table width="400" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="150">Titulo:</td>
<td width="250"><label>
<input name="titulo" type="text" id="titulo">
</label></td>
</tr>
<tr>
<td>Categoria:</td>
<td><label>
<select name="categoria" id="categoria">
<option value="1">Nacionales</option>
<option value="2">Internacionales</option>
</select>
</label></td>
</tr>
<tr>
<td>Primer Contenido: </td>
<td><input name="p_contenido" type="text" id="p_contenido"></td>
</tr>
<tr>
<td>Segundo Contenido:</td>
<td><input name="s_contenido" type="text" id="s_contenido"></td>
</tr>
<tr>
<td>Imagen:</td>
<td><label>
<input name="archivo" type="file" id="archivo">
</label></td>
</tr>
<tr>
<td><input name="fecha" type="hidden" id="fecha" value="<?php echo $Fecha; ?>"></td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td><label>
<input type="submit" name="Submit" value="Enviar">
</label></td>
</tr>
</table>
</form>
</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
</table>
</body>
</html>

y de este form valida a esta Pagina = "Val_Upload.php":

<?php
require_once ("Connections/Batco.php");

//$Archivo = $_POST['archivo'];
$Archivo = $HTTP_POST_FILES['archivo']['tmp_name'];
$Nombre_Archivo = $HTTP_POST_FILES['archivo']['name'];
$Tipo_Archivo = $HTTP_POST_FILES['archivo']['type'];
$Tamano_Archivo = $HTTP_POST_FILES['archivo']['size'];

echo "<b>El Nombre del Archivo es:</b> $Nombre_Archivo <br>";
echo "<b>El Tipo de Archivo es:</b> $Tipo_Archivo <br>";
echo "<b>El Tamaño del Archivo es:</b> $Tamano_Archivo <br>";

if ( ( strpos($Tipo_Archivo, "gif") || strpos($Tipo_Archivo, "jpeg") || strpos($Tipo_Archivo, "png") ))
{
echo "<b>El Estado del Archivo es:</b> Valido <br>";
if (copy($Archivo, "imagen_noticias/".$Nombre_Archivo)) // "imagen_noticias es el nombre de la carpte donde subira las imagenes (Borra Este Comentario)"
{
$Sql = "insert into noticias (CategoriaNoticias_CodCategoriaNoticias, Titulo_Noticia, Primer_Contenido, Segundo_Contenido, Imagen_Noticia,Fecha_Ingreso) values ('$categoria', '$titulo','$p_contenido','$s_contenido','$Nombre_A rchivo','$fecha')";
//$Result = mysql_query($Sql) or die (mysql_error());
if (mysql_query($Sql) or die (mysql_error()) )
{
echo "NOTICIA Agregada";
}
else
{
echo "NOTICIA NO Agregada";
}
echo "<br><b>SUBIDO con Exito</b>";
}
else
{
echo "<br><b>ERROR al Subir el Archivo</b>";
}
}
else
{
echo "Archivo NO Valido";
}


?>

Lo hice personalmente, no eh tenido ningun problema. Espero te ayude..
  #13 (permalink)  
Antiguo 08/08/2007, 17:06
 
Fecha de Ingreso: agosto-2004
Mensajes: 440
Antigüedad: 19 años, 8 meses
Puntos: 2
Re: Insertar imagenes en MySql

hola tu codigo esta super ya lo probe y funiono mesubio correctamente la imagen a la carpeta ahora lo que yo quiero es poder veresa noticia si,que me salga en una tabla la noticia con el titulo, el comentario y la imagen q es lo mas importante tu me puedes ayudar con eso te lo agradeceria porq no tengo ni idea como se hace y es l o q busco para complementr tu codigo
__________________
paty :adios:
  #14 (permalink)  
Antiguo 08/08/2007, 22:41
Avatar de ginitofl  
Fecha de Ingreso: diciembre-2006
Ubicación: Lima Perú
Mensajes: 349
Antigüedad: 17 años, 4 meses
Puntos: 22
Re: Insertar imagenes en MySql

Hola Niltza y a todos ese tema ya lo eh posteado hace tiempo pueden verlo en este enlace: http://www.forosdelweb.com/f18/subir-imagenes-noticias-448466/ bueno espero que les ayude mucho y cualquier cosa que no comprendan no duden en preguntarme. Saludos.
  #15 (permalink)  
Antiguo 09/08/2007, 11:57
Avatar de josefferhn  
Fecha de Ingreso: agosto-2007
Ubicación: Tegucigalpa, Fco Morazan
Mensajes: 27
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: Insertar imagenes en MySql

Hola Niltza, pues bien, gracias por tu comentario, lo unico ke debes agregar es esto:

Código PHP:
<?php
require_once ("Connections/Batco.php");

$Cod_Noticia $_GET['CodigoNoticia']; // Recoge el ID de la Noticia que quieres Ver.

$Sql "select * from noticias where CodNoticias = '$Cod_Noticia'";
$Result mysql_query($Sql);
if (
mysql_num_rows($Result) > 0)
{
    while (
$Row mysql_fetch_array($Result))
    {
        
$Codigo $Row['CodNoticias'];
        
$Titulo $Row['Titulo_Noticia'];
        
$P_Contenido $Row['Primer_Contenido'];
        
$S_Contenido $Row['Segundo_Contenido'];
        
$Imagen $Row['Imagen_Noticia'];
        
$Fecha$Row['Fecha_Ingreso'];
    }
}
else
{
$NotNoticia "NO Hya Noticias por Mostrar";
}



?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>:: Ver Noticias ::</title>
</head>

<body>
<table width="600" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><h4>Ver Noticia </h4></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td><form name="form1" method="post" action="">
      <table width="600" border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td width="250" rowspan="9"><div align="center">
          <?php 
          
if ($Imagen <> "")
          {
          echo 
"<img src=imagen_noticias/".$Imagen." height= 120 width= 140>";  
          }
          else
          {
          echo 
"<b> No Hay Imagen para Mostrar";
          }
           
?></div></td>
          <td width="350"><?php echo $Fecha?></td>
        </tr>
        <tr>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td><?php echo $Titulo?></td>
        </tr>
        <tr>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td><?php echo $P_Contenido?></td>
        </tr>
        <tr>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td><?php echo $S_Contenido;?></td>
        </tr>
        <tr>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td>&nbsp;</td>
        </tr>
      </table>
        </form>    </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
</table>
</body>
</html>
Ok con esto puedes ver la Noticia y Su respectiva Imagen, claro esta antes de llegar a esta pagina debes enviar el Codigo de Noticia que quieres ver. y Listo.

Fernando. <TheAnswer>
  #16 (permalink)  
Antiguo 27/01/2014, 18:29
Avatar de WilliamMesaRodriguez  
Fecha de Ingreso: enero-2014
Ubicación: bogota
Mensajes: 1
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: No es adecuado insertarlos en la bd...

me podria decir como puedo hacer esto en phpmyadmin de colocar en la base de datos la ruta de la imagen
para no guardarla pue son mucha imagenes ¿ con que tipo de variable por ejemplo varchar o cual?
  #17 (permalink)  
Antiguo 27/01/2014, 20:37
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Insertar imagenes en MySql

WilliamMesaRodriguez, por favor no revivas temas tan antiguos, si creas uno nuevo será más fácil obtener una buena respuesta.
__________________
- León, Guanajuato
- GV-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.
Tema Cerrado

SíEste tema le ha gustado a 2 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 02:51.