Copier un répertoire

cs_anaa21 Messages postés 17 Date d'inscription lundi 28 août 2006 Statut Membre Dernière intervention 17 juillet 2009 - 20 oct. 2006 à 14:12
cs_anaa21 Messages postés 17 Date d'inscription lundi 28 août 2006 Statut Membre Dernière intervention 17 juillet 2009 - 22 oct. 2006 à 23:41
Bonjourà tous, je suis à la recherche d'un script  en php  qui me permet de copier le contenu d'un répertoire contenant des images ainsi qu'un sous répertoire. J'ai utilisé la fonction copy() mais elle ne marche pas :s.
  Voila  le script ke j'ai utilisé:

 $last_listing = mysql_insert_id();

            chmod("images", 0777);
                        $pach="images/".$last_listing;
                        mkdir($pach);

                        chmod("images", 0777);
                        $pach2="images/".$last_listing."/dossier_big";
                        mkdir($pach2);

                        chmod("images", 0777);
                        $pach3="images/".$last_listing."/dossier_small";
                        mkdir($pach3);

$rep="images/".$code_listing."/dossier_big/";    //chemin du rep
                                                                                    $destination_photo="images/".$last_listing."/dossier_big";   
                                                                                     
                                                                                 $dir = opendir($rep);    
                                                                                             $j=0;
                                                                                 while ($f_image= readdir($dir))
                                                                                 {
                                                                                                 $file_image[$j]=$f_image;
                                                                                                 //echo $file_image[$j];

                                                                                               
                                                                                                 $j++;           
                                                                                        $dir_au="$rep".$file_image[2];       
                                                                                 }
                                                                                        //$dir_au="$rep".$file_image[2];
                  
                            
                                                              copy($dir_au,destination_photo);                                   
                                                                       
                                                                                             closedir($dir);

Merci de votre aide

8 réponses

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
20 oct. 2006 à 14:18
Déplacé sur phpcs !














<hr size="2" />



-Blog-
0
wizard512 Messages postés 459 Date d'inscription dimanche 9 janvier 2005 Statut Membre Dernière intervention 11 mai 2013 2
20 oct. 2006 à 14:47
La fonction copy ne permet en aucun cas
au dernière nouvelle de copier un répertoire,
mais pour copier un répertoire, essaye de lister tous les fichiers et sous dossier du répertoire en questions et de les copier vers leur nouvelles distination......

    Coordialement ~~ DotWizard512 ~~

              
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
20 oct. 2006 à 14:50
0
cs_anaa21 Messages postés 17 Date d'inscription lundi 28 août 2006 Statut Membre Dernière intervention 17 juillet 2009
20 oct. 2006 à 16:30
Slt wizard512, stp t'as pas un script ki fera l'affairee car le mien ne fonctionne pas
  Merci.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_jean84 Messages postés 449 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 5 mars 2009
20 oct. 2006 à 18:46
function CopyEntites($RepSrc, $RepDest)
{
    // Handle du repertoire source
    $Handle = @opendir($RepSrc);
   
    // Listing
    while ( $File = readdir($Handle) )
    {
        // Chemin absolu du fichier/repertoire trouvee et chemin absolu de la destination
        $PathSrc = $RepSrc.'/'.$File;
        $PathDest = $RepDest.'/'.str_replace(' ', '_', str_replace(' ', '_', $File));
       
        // Si on a trouve un fichier
        if ( !is_dir($PathSrc) )
        {
            $ResCopy = @copy($PathSrc, $PathDest);
            if ( !$ResCopy )
                echo 'Impossible de copier '.$PathSrc.' vers '.$PathDest.'
';
        } 
        // Ou un dossier
        elseif( is_dir($PathSrc) && ($File != '.') && ($File != '..') )
        {
            // Si on a trouve un dossier, on cree un dossier identique (en virant les espaces) dans le dir de destination
            $NewFile = str_replace(' ', '_', $File);  // enleve les espaces
            $NewFile = str_replace(' ', '_', $NewFile);  // enleve la combinaison ALT + 0160
           
            // Creation du repertoire
            $ResMk = @mkdir($PathDest.'/'.$NewFile, 0777);
            if ( !$ResMk )
                echo 'Impossible de copier le repertoire '.$NewFile.' vers '.$PathDest.'<r>';
            else
                CopyEntites($PathSrc.'/'.$NewFile, $PathDest.'/'.$NewFile);       
        }
    }
   
    // Fermeture du repertoire
    @closedir($Handle);
}

Un petit truc que j'ai fait pour mon album photo. Tu devra surement l'adapter pour qui'l fonctionne comme tu le veux. Pour en avoir d'autre regarde ma souce http://www.phpcs.com/codes/PHP4-MYSQL-ALBUM-PHOTO-PARTIE-ADMIN-AVEC-BDD_38654.aspx
(dans config/scritps/fonctions.php), peut y avoir des trucs qui t'interesse...

@+
0
wizard512 Messages postés 459 Date d'inscription dimanche 9 janvier 2005 Statut Membre Dernière intervention 11 mai 2013 2
20 oct. 2006 à 19:50
tien, anaa21, adapte le script que t'a filais si gentillement

jean84
 puis si tu as un probleme, fait nous signe, et on t'aidera....

     ~~ DotWizard512 ~~

       
0
cs_jean84 Messages postés 449 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 5 mars 2009
21 oct. 2006 à 19:07
Les premieres choses a modifier par exemple et la boucle while() => while ( ($File =readdir($Handle)) !== FALSE)
te permettra d'eviter quelques bugs (pas vrai Malalam ;-)) ...
Comme l'a si bien dit Wizard, appelle nous si tu as un probleme dans l'adaptation du code ;-)

@+
0
cs_anaa21 Messages postés 17 Date d'inscription lundi 28 août 2006 Statut Membre Dernière intervention 17 juillet 2009
22 oct. 2006 à 23:41
Salut jean84, merci beaucoup pour la fonction , elle fonctionne à merveille :d :d
 géniallllllll
0
Rejoignez-nous