Foros del Web » Programando para Internet » PHP »

Imagenes en MySQL con PHP

Estas en el tema de Imagenes en MySQL con PHP en el foro de PHP en Foros del Web. Hola, les explico mi problema, tengo una base datos hecha en MySQL la cual la administro a travez de PHP, pero resulta que uno de ...
  #1 (permalink)  
Antiguo 01/01/2007, 22:23
 
Fecha de Ingreso: octubre-2003
Ubicación: Santiago
Mensajes: 8
Antigüedad: 20 años, 6 meses
Puntos: 0
Pregunta Imagenes en MySQL con PHP

Hola, les explico mi problema, tengo una base datos hecha en MySQL la cual la administro a travez de PHP, pero resulta que uno de los campos de la tabla es imagen, y mi idea es, a travez de php, subir imagenes al servidor y guardar en la tabla solo la direccion de esa imagen en el servidor.

Nose como hacer esto, si alguien sabe como hacerlo, o conoce alguna pagina donde lo expliquen, se lo agradeceria enormente, estoy recien empezando en esto de php, asi que poco conozco del tema. Desde ya muchas gracias
  #2 (permalink)  
Antiguo 02/01/2007, 04:32
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Re: Imagenes en MySQL con PHP

Hola dchacion460. Busca en el foro de PHP. Allí seguro que encuentras algo.

Un saludo
  #3 (permalink)  
Antiguo 08/01/2007, 17:40
 
Fecha de Ingreso: octubre-2003
Ubicación: Santiago
Mensajes: 8
Antigüedad: 20 años, 6 meses
Puntos: 0
Re: Imagenes en MySQL con PHP

Gracias por responder, pero he buscado y buscado en el foro y no esta lo que to quiero, lo que enconte es subir una imagen a la base de datos, pero yo no quiero esto, ya que sino mi BD me va a quedar pesando una enormidad, yo quiero vincular el campo de la BD a la imagen.

Si alguien sabe como hacer esto, se lo agradeceria que me lo dijiera

Gracias
  #4 (permalink)  
Antiguo 08/01/2007, 21:16
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Re: Imagenes en MySQL con PHP

Movido desde BD a PHP.

Función de la sección de Base de Datos
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #5 (permalink)  
Antiguo 08/01/2007, 23:44
 
Fecha de Ingreso: enero-2007
Mensajes: 135
Antigüedad: 17 años, 3 meses
Puntos: 1
Re: Imagenes en MySQL con PHP

hola, la verdad si te entendi bien lo que queres, lo unico que tendrias que hacer es crear un campo tipo varchar en la base de datos y ahi copiar la ruta donde se encuetra el archivo. si queres alguna aclaracion no dudes en volver a preguntar.
saludos
Manuel
  #6 (permalink)  
Antiguo 09/01/2007, 02:52
Avatar de alllebor  
Fecha de Ingreso: septiembre-2006
Mensajes: 295
Antigüedad: 17 años, 7 meses
Puntos: 1
Re: Imagenes en MySQL con PHP

hola dchacon460, espero ayudarte! yo estaba como tu. Tengo una seccion de noticias en mi pagina web. En la tabla noticias tengo los siguientes campos (id, titular, cuerpo, imagen) todos estos campos son de texto (menos el id,claro y el cuerpo es un blog de esos) Para insertar una noticia utilizo un formulario se rellena y envia la informacion a procesar que es este script que te pongo para que se inserte la noticia en la base de datos. Solo inserto una imagen por noticia y se inserta en el servidor.

procesar.php

Código PHP:
<?php 
        
        mysql_connect
("localhost","****","*****");
        
mysql_select_db("*****");
       
$titulo=$_POST["titulo"]; 
       
$cuerpo=$_POST["cuerpo"];
       
//Variable para saber si se produce algun error
       
$error=0;
    
        
// Guarda las caracteristicas de la imagen
        //nombre_archivo=al directorio y al nombre que quieres que se guarde la foto
        
$nombre_archivo "fotos/".$_FILES['imagen']['name']; 
        
//tipo_archivo= a la extension del archivo en nuestro caso solo aceptamos imagenes (jpg, gif y png)
        
$tipo_archivo $_FILES['imagen']['type'];
        
// tamano_archivo= Almacena el tamaño del archivo en bytes
        
$tamano_archivo $_FILES['imagen']['size']; 
        
//compruebo si las características del archivo son las que deseo 
        
if($nombre_archivo!='fotos/'){
        if (!((
strpos($tipo_archivo"gif") || strpos($tipo_archivo"jpeg")) && ($tamano_archivo 200000))) { 
          
//el tamaño o la extension del archivo no son correctas se pone error=1
          
$error=1;

                         
        }else{ 
        if (
move_uploaded_file($_FILES['imagen']['tmp_name'], $nombre_archivo)){
         
// El archivo ha sido cargado con éxito     
           
        
        
}else{ 
        
//No se ha podido guardar el archivo en el servidor error=2
        
$error=2;               
         } 
       }
       }
           
// Comprueba si tiene algun error
               
if ($error==1){
            echo 
"<script> alert (\"El archivo no debe tener un tamaño superior a 200 KB y deber ser JPG o GIF\"); </script>";
            echo 
"<script language=Javascript> location.href=\"noticias.php\"; </script>";
            die(); }
            elseif (
$error==2){
            echo 
"<script> alert (\"No se ha podido guardar la imagen en el SERVIDOR \"); </script>";
            echo 
"<script language=Javascript> location.href=\"noticias.php\"; </script>";
            die(); 
            }
            
//si no hay errores se inserta en la TABLA
            
else{
            
mysql_query("insert into noticias (titulo,cuerpo,imagen) values ('$titulo','$cuerpo','$nombre_archivo')");   
           
             
/*echo "<script>window.location = './index.php';</script>";*/
               
}
            
header ("Location: ./noticias.php");
              exit;        
?>
Si tienes alguna duda consultala!!
  #7 (permalink)  
Antiguo 11/01/2007, 12:44
 
Fecha de Ingreso: octubre-2003
Ubicación: Santiago
Mensajes: 8
Antigüedad: 20 años, 6 meses
Puntos: 0
Re: Imagenes en MySQL con PHP

Gracias por responder, mira aun no logro hacer lo que quiero, nose en que estare fallando, les dejo el codigo para ver si me pueden ayudar

insertar.html (formulario)
Código:
<HTML>
<HEAD>
<TITLE>Insertar.html</TITLE>
</HEAD>
<BODY>
<div align="center">
<h1>Insertar Maquinas</h1>
<br>
<FORM METHOD="POST" ACTION="insertar.php" enctype="multipart/form-data">
Marca<br>
<INPUT TYPE="TEXT" NAME="marca"><br>
Modelo<br>
<INPUT TYPE="TEXT" NAME="modelo"><br>
Tipo<br>
<INPUT TYPE="TEXT" NAME="tipo"><br>
Serie<br>
<INPUT TYPE="TEXT" NAME="serie"><br>
Horas<br>
<INPUT TYPE="TEXT" NAME="horas"><br>
Kilometros<br>
<INPUT TYPE="TEXT" NAME="km"><br>
Foto<br>
<input type="file" name="Examinar" size="20"><br>
Observaciones<br>
<INPUT TYPE="TEXT" NAME="observaciones"><br>
<INPUT TYPE="SUBMIT" value="Insertar">
</FORM>
</div>
</BODY>
</HTML>
insertar.php (el que procesa el formulario)
Código:
<HTML>
<HEAD>
<TITLE>Insertar.php</TITLE>
</HEAD>
<BODY>
<?
//Conexion con la base
$link = mysql_connect("localhost","root","");

//selección de la base de datos con la que vamos a trabajar
mysql_select_db("multimaq", $link);

//Ejecucion de la sentencia SQL
mysql_query("insert into maquinas (marca,modelo,tipo,serie,horas,km,foto,observaciones) values ('$marca','$modelo','$tipo','$serie','$horas','$km','$foto','$observaciones')");
?>
<h1><div align="center">Registro Insertado</div></h1>
<div align="center"><a href="lectura.php">Ver el lisato completo</a></div>
</BODY>
</HTML>
en el campo foto es donde quiero ingresar una imagen para guardarla en el servidor y que en la BD solo me deje el link o la referencia al archivo.

Disculpen si molesto mucho, pero recien estoy aprendiendo esto de php
  #8 (permalink)  
Antiguo 11/01/2007, 13:49
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 2 meses
Puntos: 9
Re: Imagenes en MySQL con PHP

lo que quieres guardar es el nombre de la fotografia o la fotografia pero en modo binario ???
  #9 (permalink)  
Antiguo 11/01/2007, 20:18
 
Fecha de Ingreso: octubre-2003
Ubicación: Santiago
Mensajes: 8
Antigüedad: 20 años, 6 meses
Puntos: 0
Re: Imagenes en MySQL con PHP

ninguna de las 2, quiero guardar en la BD solo el link a la imagen, me explico mejor:
1. Quiero hacer un formulario en donde me permita subir la imagen a una carpeta que tengo creada en mi servidor
2. una vez subida la imagen, en la base de datos, en el campo imagen, tiene que quedar guardada la ruta de la imagen
3. crear una pagina que me muestre los datos guardados en el formulario anterior, mas la imagen

eso es basicamente lo que necesito, tengo listo todos los campos y me los muestra, para campos que sean de solo trxto (VARCHAT), pero para la imagen tengo el problema

Gracias por responder
  #10 (permalink)  
Antiguo 11/01/2007, 20:35
Avatar de deet  
Fecha de Ingreso: mayo-2005
Ubicación: Córdoba - Argentina
Mensajes: 269
Antigüedad: 18 años, 11 meses
Puntos: 1
Re: Imagenes en MySQL con PHP

hola dchacon460,

primero, que nada deberías cambiar la directiva register_globals a ON para evitar problemas de seguridad mira aquí http://www.hackingballz.com/manual-p...y.globals.html.

segundo, tienes que cambiar en el formulario el campo tipo archivo <input name="Examinar" type="file" size="20">:

<input name="foto" type="file" size="20">

tercero, agregar un par de líneas al script

insertar.php
Código PHP:
<HTML>
<HEAD>
<TITLE>Insertar.php</TITLE>
</HEAD>
<BODY>
<?
//Conexion con la base
$link mysql_connect("localhost","root","");

//selección de la base de datos con la que vamos a trabajar
mysql_select_db("multimaq"$link);

//----------- arreglo del script --------------------------------------------
//Las siguientes variables toman los valores del formulario
//cuando la directiva register_global esta en ON (se recomienda)
$marca $_POST['marca'];
$modelo $_POST['modelo'];
$tipo $_POST['tipo'];
$serie $_POST['serie'];
$horas $_POST['horas'];
$km $_POST['km'];
$observaciones $_POST['observaciones'];
//datos que obtengo del campo foto
$foto "ruta_de_las_fotos/".$_FILES["foto"]["name"];
$foto_tmp $_FILES["foto"]["tmp_name"];

//compruebo de que se haya subido la foto a la carpeta temporal
//luego muevo la foto al directorio de destino
if(is_uploaded_file($foto_tmp)){
move_uploaded_file($foto_tmp,$foto);
//este upload de archivos es muy básico dejo en tus manos en investigar sobre el tema
//para hacer upload mas restringidos
}

//----------- fin arreglo del script ----------------------------------------

//Ejecucion de la sentencia SQL
mysql_query("insert into maquinas (marca,modelo,tipo,serie,horas,km,foto,observaciones) values ('$marca','$modelo','$tipo','$serie','$horas','$km','$foto','$observaciones')");
?>
<h1><div align="center">Registro Insertado</div></h1>
<div align="center"><a href="lectura.php">Ver el lisato completo</a></div>
</BODY>
</HTML>
con eso tienes que poder subir fotos al servidor y la foto ruteada en la DB, el arreglo que escribí lo hice al vuelo, puede que de algún error si no te funciona, no dudes de postear.

espero que te haya sido de utilidad.
  #11 (permalink)  
Antiguo 18/01/2007, 13:21
 
Fecha de Ingreso: mayo-2004
Mensajes: 400
Antigüedad: 19 años, 11 meses
Puntos: 0
Re: Imagenes en MySQL con PHP

hola, gracias ha este post he conseguido agregar la ruta de las imagenes a la bd, ahora quisiera saber una cosa, he creado un formulario para editar los datos y utiliza tambien el envio de imagen, si la envia la reemplaza, por eso no hay problema, lo que quiero saber es como puedo eliminar la imagen previa, la que esta guardada en la carpeta para que no ocupe espacio ya que se sube una imagen nueva.

No se si me explico, tengo el campo de la base de datos carpeta/imagen.jpg, al editar los datos y agregar una imagen nueva con esos datos lo guarda carpeta/imagen2.jpg, lo que quiero es que me elimine antes el archivo que esta fisicamente en esa carpeta, el que fue reemplazado en carpeta/imagen.jpg.

Espero que ahora se entienda mejor :)
Saludos
  #12 (permalink)  
Antiguo 19/01/2007, 22:46
Avatar de Dabogam  
Fecha de Ingreso: enero-2007
Ubicación: Mérida, Yucatán
Mensajes: 21
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Imagenes en MySQL con PHP

Pues logicamente lo pienso de la siguiente forma, en el query donde extraes los datos a editar, obten la direccion o el url de donde se encuentra la imagen anterior y guardala en una variable, entonces al momento de mandar el formulario para que se actualicen los datos envia esa variable y utiliza la funcion unlink de php buscala en el manual de PHP (Soy nuevo no puedo poner links todavia :( ---) de modo que al momento de guardar la nueva imagen elimine la anterior.
Dale una checada y me cuentas si funciono la funcion valga la redundancia :P
  #13 (permalink)  
Antiguo 20/01/2007, 15:27
 
Fecha de Ingreso: mayo-2004
Mensajes: 400
Antigüedad: 19 años, 11 meses
Puntos: 0
Re: Imagenes en MySQL con PHP

Tieens razon Dabogam, antes de leer la respuesta estube buscando como se elimina archivos y di con unlink asi que lo que hice fue leer el campo que guarda la direccion en la base de datos para que elimine la imagen antes de guardar la nueva.

Un saludo :)
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 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 00:28.