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

Signaler
Messages postés
51
Date d'inscription
dimanche 2 novembre 2014
Statut
Membre
Dernière intervention
22 février 2016
-
Messages postés
51
Date d'inscription
dimanche 2 novembre 2014
Statut
Membre
Dernière intervention
22 février 2016
-
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

2 réponses

Messages postés
30124
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 novembre 2020
2 962
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 :
https://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;
}

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
Messages postés
30124
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 novembre 2020
2 962 >
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é ! ";
}
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()
Messages postés
30124
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 novembre 2020
2 962 >
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

pareil toujours un warning avec le rename Warning: rename
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
Messages postés
30124
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 novembre 2020
2 962 >
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 ????
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
}
Messages postés
30124
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 novembre 2020
2 962 >
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.
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