Déplacer un fichier en php [Résolu/Fermé]

Messages postés
51
Date d'inscription
dimanche 2 novembre 2014
Statut
Membre
Dernière intervention
22 février 2016
- - Dernière réponse : Amelie0528
Messages postés
51
Date d'inscription
dimanche 2 novembre 2014
Statut
Membre
Dernière intervention
22 février 2016
- 3 févr. 2016 à 12:00
Bonjour a tous,

je cherche une instruction en php qui peut déplacer un fichier vers un autre répertoire et supprime la source , j'ai essayé ce code mais il supprime pas la source :
rename("C:/Users/Master/Desktop/quotidien/CDRs/entreprise_".$compteur.".cdr", "C:/Users/Master/Desktop/quotidien/CDRtest/entreprise_".$compteur.".cdr");
         unlink('entreprise_".$compteur.".cdr');


comme php est une langage riche, je pense qu'il doit avoir une instruction qui fait ça:) je vous remercie d'avance
Afficher la suite 

2 réponses

Messages postés
26709
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 novembre 2019
1868
0
Merci
Bonjour,

1 - Merci de préciser le LANGAGE dans les balises de code pour que la coloration syntaxique s'applique sur le forum.
Explications disponibles ici :
http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code


2 - Le code montré est bon. (il n'en existe pas d'autre à ma connaissance).
Par contre RENAME, il me semble, DEPLACE le fichier... et donc... il n'est pas nécéssaire de le supprimer ensuite.
Par contre... si un fichier (cible) porte déjà le même nom... il ne fait rien je crois.....

Au cas où, tu peux déjà commencer par essayer ceci :
//Initialisation des Variables
$REP_SOURCE = "C:/Users/Master/Desktop/quotidien/CDRs/";
$REP_CIBLE = "C:/Users/Master/Desktop/quotidien/CDRtest/";
$fileName = "entreprise_".$compteur.".cdr"; 

//Déplacement du fichier
if(rename($REP_SOURCE . $fileName , $REP_CIBLE . $fileName){
  //le fichier a été déplacé .. on peut supprimer la source
	unlink($REP_SOURCE . $fileName);
}else{
	 echo "Erreur : Le déplacement de : ". $REP_SOURCE . $fileName ."  vers  " $REP_CIBLE . $fileName . " a échoué ! ";
}



Si ça ne fonctionne toujours pas... tu peux essayer de passer par cette fonction :

<?php

//Initialisation des Variables
$REP_SOURCE = "C:/Users/Master/Desktop/quotidien/CDRs/";
$REP_CIBLE = "C:/Users/Master/Desktop/quotidien/CDRtest/";
$fileName = "entreprise_".$compteur.".cdr"; 

//Déplacement du fichier
if(rename_win($REP_SOURCE . $fileName ,$REP_CIBLE . $fileName)){
	echo "Déplacement réalisé avec succès !";
}else{
	 echo "Erreur : Le déplacement de : ". $REP_SOURCE . $fileName ."  vers  " $REP_CIBLE . $fileName . " a échoué ! ";
}


function rename_win($oldfile,$newfile) {
   if (!rename($oldfile,$newfile)) {
      if (copy ($oldfile,$newfile)) {
         unlink($oldfile);
         return TRUE;
      }
      return FALSE;
   }
   return TRUE;
}

Amelie0528
Messages postés
51
Date d'inscription
dimanche 2 novembre 2014
Statut
Membre
Dernière intervention
22 février 2016
-
merci jordane pour le premier code il affiche aussi un warning par apport au 'rename '
et le déplacement du fichier a échoué:"Erreur : Le déplacement de : ". $REP_SOURCE . $fileName ." vers " $REP_CIBLE . $fileName . " a échoué !
je vais essayé d'utiliser votre fonction mtn
jordane45
Messages postés
26709
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 novembre 2019
1868 > Amelie0528
Messages postés
51
Date d'inscription
dimanche 2 novembre 2014
Statut
Membre
Dernière intervention
22 février 2016
-
Oups... il manque une parenthèse :
if(rename($REP_SOURCE . $fileName , $REP_CIBLE . $fileName)){
  //le fichier a été déplacé .. on peut supprimer la source
	unlink($REP_SOURCE . $fileName);
}else{
	 echo "Erreur : Le déplacement de : ". $REP_SOURCE . $fileName ."  vers  " $REP_CIBLE . $fileName . " a échoué ! ";
}
Amelie0528
Messages postés
51
Date d'inscription
dimanche 2 novembre 2014
Statut
Membre
Dernière intervention
22 février 2016
-
pour la fonction il reconnais pas rename_win()
Fatal error: Call to undefined function rename_win()
jordane45
Messages postés
26709
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 novembre 2019
1868 > Amelie0528
Messages postés
51
Date d'inscription
dimanche 2 novembre 2014
Statut
Membre
Dernière intervention
22 février 2016
-
Place la fonction AVANT son utilisation :
<?php
function rename_win($oldfile,$newfile) {
   if (!rename($oldfile,$newfile)) {
      if (copy ($oldfile,$newfile)) {
         unlink($oldfile);
         return TRUE;
      }
      return FALSE;
   }
   return TRUE;
}


//Initialisation des Variables
$REP_SOURCE = "C:/Users/Master/Desktop/quotidien/CDRs/";
$REP_CIBLE = "C:/Users/Master/Desktop/quotidien/CDRtest/";
$fileName = "entreprise_".$compteur.".cdr"; 

//Déplacement du fichier
if(rename_win($REP_SOURCE . $fileName ,$REP_CIBLE . $fileName)){
	echo "Déplacement réalisé avec succès !";
}else{
	 echo "Erreur : Le déplacement de : ". $REP_SOURCE . $fileName ."  vers  " $REP_CIBLE . $fileName . " a échoué ! ";
}



Messages postés
51
Date d'inscription
dimanche 2 novembre 2014
Statut
Membre
Dernière intervention
22 février 2016
0
Merci
pareil toujours un warning avec le rename Warning: rename
Amelie0528
Messages postés
51
Date d'inscription
dimanche 2 novembre 2014
Statut
Membre
Dernière intervention
22 février 2016
-
j'ai redemarré wamp et ca marche mais avec ce message d'erreur:
Fatal error: Cannot redeclare rename_win() (previously declared in C:\wamp\ww
mtn le fichier sont dans le dossier source et Déplacement réalisé avec succès
jordane45
Messages postés
26709
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 novembre 2019
1868 > Amelie0528
Messages postés
51
Date d'inscription
dimanche 2 novembre 2014
Statut
Membre
Dernière intervention
22 février 2016
-

Cannot redeclare rename_win()

...heu... tu n'aurais pas cette fonctione à plusieurs endroits ?
ou alors... c'est que tu appelles cette page plusieurs fois via des INCLUDE ????
Amelie0528
Messages postés
51
Date d'inscription
dimanche 2 novembre 2014
Statut
Membre
Dernière intervention
22 février 2016
-
non, par contre elle est placé dans un if
on faite mon script test un fichier csv et si (if) il trouve une valeur > seuil il deplace le fichier puis il le supprime
donc la fonction est place dans un if{
fonction
}
jordane45
Messages postés
26709
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 novembre 2019
1868 > Amelie0528
Messages postés
51
Date d'inscription
dimanche 2 novembre 2014
Statut
Membre
Dernière intervention
22 février 2016
-
place ta fonction en dehors de ton if.
dans l'idéal ... avant le reste de ton code.
Amelie0528
Messages postés
51
Date d'inscription
dimanche 2 novembre 2014
Statut
Membre
Dernière intervention
22 février 2016
-
oui j'ai fait ça merci jordane