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