Foros del Web » Programando para Internet » PHP »

copiar carpetas mas sus archivos

Estas en el tema de copiar carpetas mas sus archivos en el foro de PHP en Foros del Web. muy buenas Estoy intentando crear este código para que al crear un usuario me se cree una carpeta con su nombre de user y que ...
  #1 (permalink)  
Antiguo 29/04/2011, 08:01
 
Fecha de Ingreso: abril-2011
Ubicación: barcelona
Mensajes: 127
Antigüedad: 13 años
Puntos: 2
copiar carpetas mas sus archivos

muy buenas

Estoy intentando crear este código para que al crear un usuario me se cree una carpeta con su nombre de user y que dentro de esta carpeta se me copien unos archivos que tengo en otra con el nombre de plantilla hasta aquí todo perfecto funciona

El problema es que no me copia una carpeta que tengo dentro de la carpeta plantilla es decir copia los archivos pero no las carpeta y eso es lo que me desespera voy de problema en problema soluciono uno sale el siguiente .

ya comente un codigo parecido pero este esta mas claro gracias de antemano.




Código PHP:
// Establecer nuestra ruta de acceso absoluta para los directorios se crean en:
$path $_SERVER['DOCUMENT_ROOT'] . '/usuarios/uploads/';
 
if (isset(
$_POST['create'])) {
    
// Apúntese a nuestro formulario de datos
    
$dirName = isset($_POST['nombre_user'])?$_POST['nombre_user']:false;
 
    
// Primero validar el valor:
    
if ($dirName !== false && preg_match('~([^A-Z0-9]+)~i'$dirName$matches) === 0) {
        
// Tenemos un directorio válido:
        
if (!is_dir($path $dirName)) {
            
// Somos buenos para crear este directorio:
            
if (mkdir($path $dirName0777)) {
            
            
 
//copiando contenido de directorios
            
$origen "../usuarios/uploads/plantilla/"//pon la carpeta origen 
 //pon la variable $nombre o una carpeta destino que ya exista 
            
$destino ="../usuarios/uploads/".$dirName."/";
                if (
$vcarga opendir($origen)) 
                { 
                echo 
"Directorio: $origen<br><br>"
                echo 
"Fichero:<br><br>"
                    while(
$file readdir($vcarga)) 
                { 
                    if (
$file != "." && $file != ".."
                    { 
                        if(
copy($origen $file$destino $file)) 
                        
                        { 
                        
                        } 
        
                    
//era directorio llamo a la función de nuevo con la nueva ubicación
                    
copy($origen.$file."/"$destino.$file."/");
                    }
                    echo 
"<b>$file</b> se copió con éxito al directorio.<br>"
                    }
                }
                }
                
closedir($vcarga); 
                }
    
        
    

        
// Datos no válidos, htmlenttie les encajona <> se utilizaron.
        
$dirName htmlentities($dirName);
        
$error "Usted tiene valores no válidos en {$dirName}.";

 }

  #2 (permalink)  
Antiguo 29/04/2011, 08:21
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: copiar carpetas mas sus archivos

Por favor, te invito a leer las normas del foro. Ya que no esta permitido duplicar temas:
http://www.forosdelweb.com/f18/crean...ctorio-908070/

Y la solución no es tan sencilla como esperarías copiar y pegar, pues debes escribir una función recursiva que haga dicho trabajo.

Así que mientras tengas el script tal cual va a resultar difícil que lo consigas, debes encapsular la lógica del copiado en una función independiente para poder aplicar recursividad.

Además lee lo siguiente:
http://php.net/manual/es/language.functions.php
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: carpetas
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.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




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