Foros del Web » Programando para Internet » PHP »

Se puede copiar y pegar archivos/carpetas en el servidor con php?

Estas en el tema de Se puede copiar y pegar archivos/carpetas en el servidor con php? en el foro de PHP en Foros del Web. Hola solo eso, Se puede copiar y pegar carpetas (incluyendo su contenido de archivos y otras carpetas) en el servidor con php? Por ejemplo digamos ...
  #1 (permalink)  
Antiguo 20/06/2009, 11:28
 
Fecha de Ingreso: diciembre-2005
Ubicación: Barcelona
Mensajes: 1.428
Antigüedad: 16 años, 5 meses
Puntos: 15
Se puede copiar y pegar archivos/carpetas en el servidor con php?

Hola
solo eso,
Se puede copiar y pegar carpetas(incluyendo su contenido de archivos y otras carpetas) en el servidor con php?

Por ejemplo digamos que tengo:

public/miCarpeta/
y
public/copias/

Se podria mover 'miCarpeta' a 'copias' ? de forma que quede:

public/miCarpeta/
y
public/copias/miCarpeta/


gracias
saludos!

Última edición por chefnelone; 20/06/2009 a las 11:36
  #2 (permalink)  
Antiguo 20/06/2009, 11:37
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 14 años, 1 mes
Puntos: 2534
Respuesta: Se puede copiar y pegar archivos/carpetas en el servidor con php?

pues hay varias funciones para esto...

revisa el manual de PHP
http://php.net/

en las funciones del sistema de archivos

copy(), rename(), etc...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 22/06/2009, 01:40
 
Fecha de Ingreso: diciembre-2005
Ubicación: Barcelona
Mensajes: 1.428
Antigüedad: 16 años, 5 meses
Puntos: 15
Respuesta: Se puede copiar y pegar archivos/carpetas en el servidor con php?

lo he mirado pero no me da resultado.

si lo hago con :
rename("public/miCarpeta/", "public/copias/miCarpeta/");
funciona, pero me borra el original el cual necesito conservar.


y con:
copy("/copiaFolder2/", "/copiaFolder/");
no funciona porque solo copia archivos y no carpetas.

Alguna idea.
gracias
  #4 (permalink)  
Antiguo 22/06/2009, 05:07
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 14 años, 1 mes
Puntos: 2534
Respuesta: Se puede copiar y pegar archivos/carpetas en el servidor con php?

ideas... claro!!

itera un directorio, y vas copiando recursivamente....
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 23/06/2009, 04:55
 
Fecha de Ingreso: diciembre-2005
Ubicación: Barcelona
Mensajes: 1.428
Antigüedad: 16 años, 5 meses
Puntos: 15
Respuesta: Se puede copiar y pegar archivos/carpetas en el servidor con php?

Dejo este codigo que duplica archivos y carpetas, por si alguien tiene la misma pregunta:

Código:
function smartCopy($source, $dest, $options=array('folderPermission'=>0755,'filePermission'=>0755))
    {
        $result=false;
       
        if (is_file($source)) {
            if ($dest[strlen($dest)-1]=='/') {
                if (!file_exists($dest)) {
                    cmfcDirectory::makeAll($dest,$options['folderPermission'],true);
                }
                $__dest=$dest."/".basename($source);
            } else {
                $__dest=$dest;
            }
            $result=copy($source, $__dest);
            chmod($__dest,$options['filePermission']);
           
        } elseif(is_dir($source)) {
            if ($dest[strlen($dest)-1]=='/') {
                if ($source[strlen($source)-1]=='/') {
                    //Copy only contents
                } else {
                    //Change parent itself and its contents
                    $dest=$dest.basename($source);
                    @mkdir($dest);
                    chmod($dest,$options['filePermission']);
                }
            } else {
                if ($source[strlen($source)-1]=='/') {
                    //Copy parent directory with new name and all its content
                    @mkdir($dest,$options['folderPermission']);
                    chmod($dest,$options['filePermission']);
                } else {
                    //Copy parent directory with new name and all its content
                    @mkdir($dest,$options['folderPermission']);
                    chmod($dest,$options['filePermission']);
                }
            }

            $dirHandle=opendir($source);
            while($file=readdir($dirHandle))
            {
                if($file!="." && $file!="..")
                {
                    if(!is_dir($dirsource."/".$file)) {
                        $__dest=$dest."/".$file;
                    } else {
                        $__dest=$dest."/".$file;
                    }
                    //echo "$source/$file ||| $__dest<br />";
                    $result=smartCopy($source."/".$file, $__dest, $options);
                }
            }
            closedir($dirHandle);
           
        } else {
            $result=false;
        }
        return $result;
    }
smartCopy('copiaFolder2', 'copiaFolder3');//aquí le indicas el original y el nombre de la copia
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 18:50.