Foros del Web » Programando para Internet » PHP »

sistema para subir archivos a una carpeta recien creada

Estas en el tema de sistema para subir archivos a una carpeta recien creada en el foro de PHP en Foros del Web. Que tal estoy creando un sistema en el cual el usuario pueda subir archivos a una carpeta la cual sera creada recien que el usuario ...
  #1 (permalink)  
Antiguo 29/09/2009, 15:41
 
Fecha de Ingreso: octubre-2007
Mensajes: 66
Antigüedad: 16 años, 6 meses
Puntos: 0
Pregunta sistema para subir archivos a una carpeta recien creada

Que tal estoy creando un sistema en el cual el usuario pueda subir archivos a una carpeta la cual sera creada recien que el usuario entra al formulario. Ese nombre de carpeta tendra algún numero para diferenciarlo de otros,el cual será almacenado en una base de datos, entonces cree el siguiente código, EL PROBLEMA es que me crea la carpeta pero al momento de subir los archivos no me respeta en la ruta la variable de la carpeta que cree ¿Alguien sabe como subir archivos a una carpeta recien creada la cual es una variable?

Código PHP:
<?
//Conexion con la base
mysql_connect("localhost","XXXXX","XXXXX");
//Ejecucion de la sentencia SQL
mysql_db_query("grupobiz_inmuebles","insert into $tipo(condicion,ubicacion,precio,periodo,edad,recamaras,banos,const,terre,descri) values ('$condicion','$ubicacion','$precio','$periodo','$edad','$recamaras','$banos','$const','$terre','$descri')");
?>

<?
//consulta de id 
$result=mysql_db_query("grupobiz_inmuebles","select * from $tipo order by id desc limit 1 ");

while (
$row=mysql_fetch_array($result))
{
$ido $row["id"];
}
?>
<?
//Delimitación para cada tipo de inmuebles elegidos
switch($tipo){
    case(
'departamentos'):
        
$inmue ="dep";
    break;
    case (
'casas'):
        
$inmue ="cas";
    break;
    case (
'locales'):
        
$inmue ="loc";
    break;
    case (
'terrenos'):
        
$inmue ="ter";
    break;
    case (
'bodegas'):
        
$inmue ="bod";
    break;
}
?> 
<?
//Definición de variable tomando la abreviacion del tipo de inmueble y el id
$carpeta=$inmue.$ido;
echo 
$carpeta;
?>
<?
//Creación de carpetas y copia de archivos en las mismas
mkdir("gal/$carpeta/",0777);
chmod("gal/$carpeta/",0777);
mkdir("gal/$carpeta/photos/",0777);
chmod("gal/$carpeta/photos/",0777);
copy("gal/ar/AC_RunActiveContent.js","gal/$carpeta/photos/AC_RunActiveContent.js");
copy("gal/ar/cas1.html","gal/$carpeta/photos/cas1.html");
copy("gal/ar/cas1.swf","gal/$carpeta/photos/cas1.swf");
?>

<span class="style1">Registro Insertado</span>
<?php
//Definición de rutas para uploads de archivos HE AQUI DONDE TENGO PROBLEMAS
$ruta"gal/$carpeta/photos/".$_FILES['fichero']['name'];
//Up load de archivos
if (isset($_POST['submit'])) { 
    if(
is_uploaded_file($_FILES['fichero']['tmp_name'])) { // verifica haya sido cargado el archivo
        
if(move_uploaded_file($_FILES['fichero']['tmp_name'], $ruta)) { // se coloca en su lugar final
                    
echo "<b>Upload exitoso!. Datos:</b><br>";
            echo 
"Nombre: <i><a href=\"gal/photos/".$_FILES['fichero']['name']."\">".$_FILES['fichero']['name']."</a></i><br>";
            echo 
"Tipo MIME: <i>".$_FILES['fichero']['type']."</i><br>";
                    echo 
"Peso: <i>".$_FILES['fichero']['size']." bytes</i><br>";
                        echo 
"<br><hr><br>";
        }
    }

// A continuación el formulario
}
?>

<form action="<?php echo $_SERVER['PHP_SELF'?>" method="post" enctype="multipart/form-data">
    Archivo: <input name="fichero" type="file">
    <input name="submit" type="submit" value="Upload!"> 
</form>
  #2 (permalink)  
Antiguo 29/09/2009, 16: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: sistema para subir archivos a una carpeta recien creada

Código php:
Ver original
  1. $carpeta=$inmue.$ido;
  2. // Que es lo que te muestra el siguiente echo?
  3. echo $carpeta;
  4.  
  5. $ruta= "gal/$carpeta/photos/".$_FILES['fichero']['name'];
  6. // Si haces un echo de $ruta, que te muestra?
  7. echo $ruta;

Aparte:

- Creas carpetas sin verificar primero si ya existen is_dir() y/o file_exists() pueden servir.
- Estas consumiendo espacio sin necesidad, al copiar archivos .js y .html a la carpeta creada.

Te recomiendo usar una sola carpeta para todos los archivos, solo cambiales el nombre para evitar duplicados y puedas identificarlos facilmente, digamos que sea "$usuario-$inmue-$nombre_archivo.jpg"
__________________
- 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.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:35.