Subir imagen a base de datos

Iniciado por layker, 5 Mayo 2008, 18:55 PM

0 Miembros y 1 Visitante están viendo este tema.

layker

Hola quiero hacer un sistema de productos con imagenes en mysql
lo he hecho de una manera pero creo que no es la buena,
mi idea es hacer un formulario pa insertar los datos del producto y adjuntar una imagen, y luego otro script de edicion y de borrar.

yo lo he hecho de la siguiente manera:

Un formulario para subir el archivo
Citar
<form action="imagenes_upload.php" method="post" enctype="multipart/form-data">
<input name="archivo" type="file">
<input type="submit" value="Enviar"></form>

y el siguuiente script
Citar
   if(!is_dir("../../cosas/imagenes"))
   {
      mkdir("../../cosas/imagenes", 0777);   
   }

   
    if (move_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name'], $nombre)){
       echo "<p>El archivo ha sido cargado correctamente.<br>";
       echo "<a href=\"imagenes.php\">Volver atrás</a></p>";
   

   require("../bdconnect.php");
    $query="INSERT INTO `imagenes` VALUES (NULL , '$url')";
    $con=mysql_query($query);
       
       if(isset($con))
       {
      echo "Actualizacion de base de datos correcta";
      }
      else
      {
         echo "Fallo en la base de datos";
      }
    }
   else{
       echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
    }
}

Lo que hago es subir el archivo a una carpeta y copiar la url en la base de datos, y tngo la impresion de que no esta bien hecho, el resultado va bien pero creo k no es el mejor, a la hora de hacer un script que me borre el producto no se como hacer para eliminar la imagen, al igual que al modificarlo.... alguien puedo ayudarme o darme su opinion??? un saludo
espero haberme explicado con claridad. gracias

SirLanceCC

Asi lo hubiera hecho yo, exepto que en vez de guardar la url del archivo sólo guardaría su nombre. Luego si todas las imagégenes van a estar en la misma carpeta en tu script sólo necesitas hacer algo asi
Código (php) [Seleccionar]

echo "<img src=\"carpeta/todaslasfotosaqui/$nombre_archivo\" />'

y ya queda. Es recomendable que al nombre del archivo le adjuntes un numero unico e irrepetible por ejemplo la id para que no haya dos archivos con el mismo nombre y por lo tanto alguno se borre.

y para borrar archivos con php usa
unlink()

Syphroot

Por ahi vi algo parecido... subir imagenes y almacenarlas pero en la base de datos, creo que manejaban el tipo de dato BLOB en MySQL. Estaba un poco mas engorroso porque habia que generar Headers, transformar datos y etc (tampoco es mucho el codigo) pero una ventaja es la organización que se crea y una desventaja podria ser que se manejan los datos a travéz de conexiones TCP (para obtener datos almacenados en FileSystem o Sistema de Archivos, osea en disco... ntfs, ext2, etc..)...

En si depende de un rendimiento que será "mejor" dependiendo la aplicación...notar la diferencia entre almacenar archivos directamente en disco o en una base de datos (que tambien lo hace obviamente, pero hay conexiones TCP de por medio)...

Espero haberme explicado...

Ahhh ya lo encontre: ;D

http://www.programacionweb.net/articulos/articulo/?num=76