Foros del Web » Programando para Internet » PHP »

Subir imágenes a carpetas categorías y subcategorías

Estas en el tema de Subir imágenes a carpetas categorías y subcategorías en el foro de PHP en Foros del Web. Hola de nuevo comunidad, armé un script para subir imágenes a una carpeta que se encuentra en el servidor y el nombre lo guarda en ...
  #1 (permalink)  
Antiguo 13/04/2012, 17:11
Avatar de elsolodigno  
Fecha de Ingreso: agosto-2009
Mensajes: 225
Antigüedad: 14 años, 8 meses
Puntos: 2
Pregunta Subir imágenes a carpetas categorías y subcategorías

Hola de nuevo comunidad, armé un script para subir imágenes a una carpeta que se encuentra en el servidor y el nombre lo guarda en la base de datos.

Hasta acá bien, pero lo que estoy necesitando es crear un formulario en el cual pueda decidir en que carpeta de categoría y subcategoría guardar la imagen a subir para luego mostrar por categorías y subcategorías esa imagen, no sé si me explico.

Aguardo sus consejos.
Muchas gracias.

Aquí mi código:

Código HTML:
Ver original
  1. <form action="upload_file.php" method="post" enctype="multipart/form-data">
  2.         <label for="file">Archivo:</label>
  3.         <input type="file" name="file" id="file" />
  4.         <br />
  5.         <input type="submit" name="submit" value="Enviar" />
  6.     </form>

Código PHP:
if ((($_FILES["file"]["type"] == "image/gif")
|| (
$_FILES["file"]["type"] == "image/jpeg")
|| (
$_FILES["file"]["type"] == "image/pjpeg"))
&& (
$_FILES["file"]["size"] < 20000))
  {
  if (
$_FILES["file"]["error"] > 0)
    {
    echo 
"Error: " $_FILES["file"]["error"] . "<br />";
    }
  else
    {
    echo 
"Subir: " $_FILES["file"]["name"] . "<br />";
    echo 
"Tipo: " $_FILES["file"]["type"] . "<br />";
    echo 
"Tamaño: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
    echo 
"Archivo temporal: " $_FILES["file"]["tmp_name"] . "<br />";

    if (
file_exists("upload/" $_FILES["file"]["name"]))
      {
      echo 
$_FILES["file"]["name"] . " ya existe. ";
      }
    else
      {
      
move_uploaded_file($_FILES["file"]["tmp_name"],
      
"upload/" $_FILES["file"]["name"]);
      echo 
"Almacenado en: " "upload/" $_FILES["file"]["name"];
      
$nombre_imagen $_FILES["file"]["name"];
      
$insertar mysql_query("INSERT INTO imagenes (id, nombre_imagen) VALUES (NULL, '$nombre_imagen')"); 
      echo 
"<br /> <a href='mostrar.php'>Mostrar</a>";
      }
    }
  }
else
  {
  echo 
"Archivo inválido";
  echo 
"<br /> <a href='index.html'>Regresar</a>";
  } 
Código PHP:
$consulta mysql_query("SELECT * FROM imagenes");
while(
$resultado mysql_fetch_array($consulta))
{
echo 
"<img src='http://localhost/upload/upload/".$resultado["nombre_imagen"]."'><br />";
}
//fin while 

Última edición por elsolodigno; 13/04/2012 a las 17:20
  #2 (permalink)  
Antiguo 13/04/2012, 17:44
 
Fecha de Ingreso: diciembre-2005
Mensajes: 87
Antigüedad: 18 años, 4 meses
Puntos: 3
Respuesta: Subir imágenes a carpetas categorías y subcategorías

En el formulario de subida, agregas 2 selects los pones como requeridos, en el subirimagen.php tambien comprueba que los campos no esten vacios.

agrega 2 campos a la bbdd categoria y subcategoria, crea el arbol de directorios de tus categorias y subcategorias en la carpeta uploads.

quedaria algo asi el fichero que graba.

Código PHP:
<? 
//tomo el valor de un elemento de tipo texto del formulario 
$Titulo $_POST["Titulo"]; 
$Descripcion $_POST["Descripcion"]; 
$ID_Colmena $_POST["ID_Colmena"];
$ruta "perfiles/"//este tendrias que ponerlo como post y que recoja la primera categoria del form
$seccion "fotografias/"//este tendrias que ponerlo como post y que recoja la subcategoria del form
$Fecha date("Y-m-d H:i:s");
$ID_Usuario "loqueusesparaidentificaralusuario";

//INICIO CREACION PARPETAS - Creo directorio del perfil activado en el servidor
        
if (is_dir("$ruta" "$ID_Usuario" "/" "$seccion")) {
// Si la carpeta existe no hago nada que siga rulando el script
}
else {
// si la carpeta no existe la creo
// creo carpeta de perfil asigno permisos 755
mkdir ("$ruta" "$ID_Usuario" "/" "$seccion"0755);
echo 
"<p class='advertenciabox'>La ruta no existe la creo</p>";
}
        
//FIN CREACION CARPETAS

// Calculamos si el usuario tiene espacio disponible en la base de datos tiene 10 megas en teoria
$TotalOcupadoCalcular=mysql_query("select *, sum(SizeFile) as SumaTotalOcupado from Fotografias where ID_Usuario='$ID_Usuario'",$connection);
$row1=mysql_fetch_array($TotalOcupadoCalcular);

$TotalOcupado $row1[SumaTotalOcupado]; //Los resultados son en Bytes
        
//datos del arhivo 
$nombre_archivo date("Y-m-d H:i:s") . ' - ' $HTTP_POST_FILES['fichero']['name']; 
$tipo_archivo $HTTP_POST_FILES['fichero']['type']; 
$tamano_archivo $HTTP_POST_FILES['fichero']['size']; 

$MaxEspacioUsuario "valor en bytes calculale unos 10 megas por usuario =)";
//Tamaño a ser utilizado en la BBDD al subir la siguiente foto
$TamPostUpload $tamano_archivo $TotalOcupado;

//Verifico Extenesiones y que el fichero no pese mas de 2 MB
        
if(!((strpos($tipo_archivo"gif") || strpos($tipo_archivo"jpeg") || strpos($tipo_archivo"png")) && ($tamano_archivo <= 1048576))) 
        {  
        echo 
"<p class='advertenciabox'>La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif - .jpg - .png<br><li>se permiten archivos de 1 MB máximo.</td></tr></table></p>";
        }
        elseif(
$TamPostUpload >= $MaxEspacioUsuario)
        {  
        
//se indica al usuario que no puede dar de alta el usuario porque ya existe ese login registrado.
        
echo "<p class='advertenciabox'>No dispone de espacio para subir mas fotografias.</p>";
        }
        else
        { 
            
if (
move_uploaded_file($HTTP_POST_FILES['fichero']['tmp_name'], $ruta $ID_Usuario "/" $seccion $nombre_archivo)){ 
       echo 
"La fotografía ha sido cargada correctamente.<br><br><b>Titulo:</b> " $Titulo "<br><br><b>Descripción:</b> " $Descripcion ""
      
       
//aqui se daria de alta el usuario y todo el proceso de alta...
        
$sql_insert sprintf("INSERT INTO Fotografias (ID_Usuario, Titulo, Descripcion, ID_Colmena, Fichero, Extension, SizeFile, Fecha) VALUES ('%s','%s','%s', '%s','%s','%s','%s','%s')",  // Ahora
                
mysql_real_escape_string($ID_Usuario), mysql_real_escape_string($Titulo),
                
mysql_real_escape_string($Descripcion), mysql_real_escape_string($ID_Colmena), 
                
mysql_real_escape_string($nombre_archivo), mysql_real_escape_string($tipo_archivo),
                
mysql_real_escape_string($tamano_archivo),mysql_real_escape_string($Fecha));
    
mysql_query($sql_insert,$connection) or die("Fallo Alta, SQL ERROR:" mysql_error());
  }
  }
    
?>

Espero que te sirva de ayuda =)

Cualquier cosa aki estoy
  #3 (permalink)  
Antiguo 13/04/2012, 17:44
Usuario no validado
 
Fecha de Ingreso: enero-2010
Ubicación: Maturín, Monagas
Mensajes: 190
Antigüedad: 14 años, 3 meses
Puntos: 24
Respuesta: Subir imágenes a carpetas categorías y subcategorías

supongo que en el formulario podrias hacer una lista desplegable con tus opciones y en tu tabla de esas imagenes creas otro campo con categorias y subcategorias luego en tu script donde guardas la imagen mediante if validas que categoria selecciono el usuario y lo guardas en tus carpetas que creaste, para mostrarlo igual solo seleccionas las imagenes extraes esos campos de categorias y subcategorias y asi llamas a tu directorio...

en tu tercer if viendo tu codigo puedes hacer esto suponiendo 2 categorias sean php y mysql:

Código PHP:
Ver original
  1. if (file_exists("upload/" . $_FILES["file"]["name"]))
  2.       {
  3.       echo $_FILES["file"]["name"] . " ya existe. ";
  4.       }
  5.     else
  6.       {
  7.         if($categoria =='php'){
  8.       move_uploaded_file($_FILES["file"]["tmp_name"],
  9.       "upload/php/" . $_FILES["file"]["name"]);
  10.       echo "Almacenado en: " . "upload/" . $_FILES["file"]["name"];
  11.       $nombre_imagen = $_FILES["file"]["name"];
  12.       $insertar = mysql_query("INSERT INTO imagenes (id, nombre_imagen) VALUES (NULL, '$nombre_imagen')");
  13.       echo "<br /> <a href='mostrar.php'>Mostrar</a>";
  14.       }
  15.       if($categoria =='mysql'){
  16.       move_uploaded_file($_FILES["file"]["tmp_name"],
  17.       "upload/mysql/" . $_FILES["file"]["name"]);
  18.       echo "Almacenado en: " . "upload/" . $_FILES["file"]["name"];
  19.       $nombre_imagen = $_FILES["file"]["name"];
  20.       $insertar = mysql_query("INSERT INTO imagenes (id, nombre_imagen) VALUES (NULL, '$nombre_imagen')");
  21.       echo "<br /> <a href='mostrar.php'>Mostrar</a>";
  22.       }
  23.      
  24.       }

bueno es una imagen espero te sirva mi ayuda..

Etiquetas: carpetas, formulario, html, imagenes, mysql
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 21:25.