Déplacer des dossiers sur un ftp

Fermé
Psychopathe - 4 nov. 2009 à 20:46
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 6 nov. 2009 à 08:08
Salut à tous,

Alors voilà je suis entrain de coder un site, un système de blog pour être plus précis!

J'ai besoin de copier-coller un dossier entier lors de l'inscription.
Voilà mon script :
<?php 
// On creé le webzine
// $dir2copy : dossier à copier
// $dir_paste : dossier de destination
 function copy_dir ($dir2copy,$dir_paste) {
 // On vérifie si $dir2copy est un dossier
 if (is_dir($dir2copy)) {
    // Si oui, on l'ouvre
      if ($dh = opendir($dir2copy)) {     
         // On liste les dossiers et fichiers de $dir2copy
         while (($file = readdir($dh)) !== false) {
         // Si le dossier dans lequel on veut coller n'existe pas, on le créé
              if (!is_dir($dir_paste)) mkdir ($dir_paste, 0777);
                
                // S'il s'agit d'un dossier, on relance la fonction récursive                
                if(is_dir($dir2copy.$file) && $file != '..'  && $file != '.')copy_dir ( $dir2copy.$file.'/' , $dir_paste.$file.'/' );     
                
                // S'il sagit d'un fichier, on le copue simplement
                elseif($file != '..'  && $file != '.') copy ( $dir2copy.$file , $dir_paste.$file );
                 }
            // On ferme $dir2copy
            closedir($dh);      
         }
       } 
      }
  $dir2copy = 'themes/'. $_GET['theme']. '/';
   $dir_paste = ''. $_POST['site'] .'/';
   // Copie le dossier $dir2copy dans le dossier $dir_paste, inutile de créer les dossiers
   copy_dir ($dir2copy,$dir_paste);



Mias ça ne marche, je n'ai pas de message d'erreur, mais le dossier n'est pas copier!
Pourtant ce code marche en local, mais pas sur mon FTP!

Je viens de mettre tous les fichiers de mon dossier www/ en lecture/ecriture/executer et en chod 777.
Mais les fichiers ne se copie toujours pas!


Merci
A voir également:

5 réponses

skuti Messages postés 53 Date d'inscription dimanche 27 septembre 2009 Statut Membre Dernière intervention 29 janvier 2013 2
5 nov. 2009 à 08:26
Utilise FileZilla !

C'est un logiciel qui se connecte a ton ftp via tes codes et l'adresse de ton server et il t'affiche tout ce que tu as.
Ensuite ta plus qu'a faire un Drag&drop et ton dossier est sur ton ftp ^^
0
Bonjour,
Une réponse plus intelligente...

L'algorithme semble OK pour moi, à première vue je ne vois pas d'incohérence.

Afin de nous aider à détecter le problème ;
Pourrais-tu, STP, ajouter des affichage des paramètres $dir2copy et $dir_paste de ta fonction (et éventuellement $file),
Et nous donner le résultat ?

Cordialement,
MCA.
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
5 nov. 2009 à 12:26
Tu écris sur le FTP comme dans un dossier courant, c'est peut être ça qui ne va pas.
Est-ce que les commandes du genre isdir() peuvent s'utiliser sur les serveurs FTP ?
Si ça fonctionne en local, je pense qu'il faut chercher dans cette direction.
La première action est de voir si la connexion est OK, et si tu arrive à lister ce qu'il y a sur le serveur.
0
Salut,

Merci pour votre aide!

J'ai rajouté ces lignes à mon code :
echo 'dir2copy : '. $dir2copy .'' ;
echo 'dir_paste : '. $dir_paste .'';
echo 'file : '.$file.'';


Et j'obtiens :
dir2copy : themes/theme3/
dir_paste : test/
file :

Ce qui correspond... A part le '$file' qui est vide...

Mais je pensais a ça dans le chemin de mes fichiers il ne faut pas que je rajoute des truc du genre : home/..../www/... comme je suis ur le FTP?


Merci
0

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

Posez votre question
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
6 nov. 2009 à 08:08
Le truc, c'est : comment utilise tu le ftp ?
Fais tu un point de montage, si ce n'est pas le cas, je ne comprends pas comment tu espère copier ton fichier.
0