Foros del Web » Programando para Internet » PHP »

Copiar archivos a una carpeta

Estas en el tema de Copiar archivos a una carpeta en el foro de PHP en Foros del Web. Hola amigos, necesito una ayudadita . Ahi les voy con la pregunta, he creado directorios para los usuarios de mi sitio web, para que cada ...
  #1 (permalink)  
Antiguo 27/02/2009, 06:00
 
Fecha de Ingreso: noviembre-2008
Mensajes: 62
Antigüedad: 15 años, 4 meses
Puntos: 2
Copiar archivos a una carpeta

Hola amigos, necesito una ayudadita . Ahi les voy con la pregunta, he creado directorios para los usuarios de mi sitio web, para que cada uno carge archivos de imagen en sus carpetas, el nombre que le doy a cada carpeta o directorio es el mismo de su cuenta de usuario, ejemplo:

cuenta de usuario: rafa123
password: ***

entonces, nombre de carpeta = rafa123

Esto para que no se vaya duplicando el nombre de carpeta. Ahi no esta el problema, el problema es que no puedo abrir la carpeta o directorio con el nombre especificado (con el nombre de cuenta de usuario). Ahi les voy con un poco de código.

Código PHP:
$nombreCarpeta $_GET["carpeta"];
$image_folder_2 'userfiles/image/img/'.$nombreCarpeta.'/';
if (
is_uploaded_file($_FILES["userfile"]["tmp_name"]))
copy($_FILES["userfile"]["tmp_name"],$image_folder_2.$_FILES["userfile"]["name"]); 
El problema esta en la segunda linea, $image_folder_2 = 'userfiles/image/img/'.$nombreCarpeta.'/'; no abre este directorio para luego subir una imagen a esta carpeta, mas bien ocurre algo bien raro, lo copia en el directorio madre, es decir, en el directorio "img", he comprobado que esta ahí la ruta imprimiendo con la funcion "echo" de php, y me imprime por decir:
'userfiles/image/img/rafa123/';
Y tambien aqui hay algo bien raro, cuando escribo personalmente con el teclado el nombre del archivo "rafa123" en vez de $nombreCarpeta, ahi si funciona. ¿cual será el error que estoy cometiendo?, una ayudadita, de ante mano gracias.
  #2 (permalink)  
Antiguo 27/02/2009, 08:15
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
Respuesta: Copiar archivos a una carpeta

bueno para ver si puedes escribir en ese directorio puedes comprobarlo con is_writeable()
ademsa para mover un archivo subido siempre es mejor usar move_uploaded_file() y no con copy
una sugerencia mucho cuidado con ese $_GET['carpeta']; pq te pueden hacer un desastre! si te meten alguna direccion relativa q arranque con ../ te pueden comenzar a dar grandes dolores de cabezq
__________________
Degiovanni Emilio
developtus.com
  #3 (permalink)  
Antiguo 27/02/2009, 08:16
 
Fecha de Ingreso: septiembre-2004
Mensajes: 324
Antigüedad: 19 años, 7 meses
Puntos: 13
Respuesta: Copiar archivos a una carpeta

Prueba esto
$image_folder_2 = "userfiles/image/img/".$nombreCarpeta."/";
  #4 (permalink)  
Antiguo 27/02/2009, 08:22
 
Fecha de Ingreso: agosto-2004
Ubicación: Lima
Mensajes: 109
Antigüedad: 19 años, 8 meses
Puntos: 1
Respuesta: Copiar archivos a una carpeta

no veo en que parte es que creas la carpeta para los usuarios como el del ejemplo que citas en tu código.rafa123. Puedes Probar de esta manera:



Código PHP:
$nombreCarpeta $_GET["carpeta"];
$image_folder_2 'userfiles/image/img/'.$nombreCarpeta.'/';
checkDirectorio($image_folder_2);
if (
is_uploaded_file($_FILES["userfile"]["tmp_name"]))
copy($_FILES["userfile"]["tmp_name"],$image_folder_2.$_FILES["userfile"]["name"]); 

function 
checkDirectorio($dir)
    { 
        
$dir preg_replace("/(.*)(\/)$/","\\1"$dir);
       
        
$directorio $_SERVER['DOCUMENT_ROOT'].''.$dir;
        
        
        if (!
is_dir($directorio)) {
            
mkdir($directorio0777);
            
chmod($directorio0777);
                
        }
    } 
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 03:18.