Copy() php confirmer si fichier existe deja??

Copy() php confirmer si fichier existe deja?? - PHP - Programmation

Marsh Posté le 26-05-2005 à 14:18:29    

Salut tout le monde,
 
la fonction copie je réussi a la gerer (pas tres dur  :sol: ),  mais je specifie le chemin de destination de la source et de la destination dans 2 variable (jusque la rien de bien méchant).(voila la artie du code qui nous interesse):

Code :
  1. <?php
  2. $file="c:/Alexandre/Appli_comptoir_MCD.pdf";
  3. $newfile="c:/tmp/";
  4. copy ($file,$newfile);
  5. if (!copy($file,$newfile)){
  6.  echo "erreur pendant la copie"; }
  7. ?>


 je voudrais juste specifier un repertoire pour la destination mais si je le fait j'ai un erreur:
Warning: copy(c:/tmp/): failed to open stream: Permission denied in c:\program files\easyphp1-8\www\feuille\testcopy.php on line 4 :kaola:  
 
Warning: copy(c:/tmp/): failed to open stream: Permission denied in c:\program files\easyphp1-8\www\feuille\testcopy.php on line 5
erreur pendant la copie :kaola:  
 
Deuxieme question :??:  Comment faire pour ne pas ecraser le fichier si il est deja dans le repertoire de destination
 
quelqu'un aurait une piste pour m'aider ca serait cool je vois pas trop comment faire
 
Merci d'avance


Message édité par bedomon le 26-05-2005 à 14:20:11

---------------
Il faut la chercher
Reply

Marsh Posté le 26-05-2005 à 14:18:29   

Reply

Marsh Posté le 26-05-2005 à 14:29:55    

1) met le nom du fichier aussi dans $newfile
2) teste l'existence de $newfile avant, ou utilise une commande système
 
au fait pourquoi tu appelles 2 fois copy ???

Reply

Marsh Posté le 26-05-2005 à 14:34:49    

Et pour tes noms de fichiers la syntaxe est :
$file="c:\\Alexandre\\Appli_comptoir_MCD.pdf" (sous windows)


Message édité par afbilou le 26-05-2005 à 14:40:33
Reply

Marsh Posté le 26-05-2005 à 14:34:55    

Vérifie aussi les droits des répertoires où tu écris.


---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
Reply

Marsh Posté le 26-05-2005 à 14:48:15    

afbilou a écrit :

Et pour tes noms de fichiers la syntaxe est :
$file="c:\\Alexandre\\Appli_comptoir_MCD.pdf" (sous windows)


 
Pourquoi tu met \\ ca marche tres bien comme je fais :heink:  
 
Au niveau de droit c nikel (777) donc tous les droits
j'essaye avec un file_exist et je rajouterai un symbole a la fin du ficher pr le differencier (enfin je vais essayer... :sweat: )


---------------
Il faut la chercher
Reply

Marsh Posté le 26-05-2005 à 15:50:28    

J'avance mais je recule en meme temps :(  
 
Je rencontre un autre probleme, lorsque je copie mon fichier je verifie avant si dans le repertoire de destinantion il existe deja si c'est le cas je renomme le fichier existant avec une extension .old( ou autre chose comme (1)), le pb c'est lors de la seconde execution il plante car le fichier avec l'extension .old existe deja donc le rename ne passe pas et j'ai une erreur :
Warning: rename(c:/tmp/appli.pdf,c:/tmp/appli.pdf.old): File exists  
 
ce que je voudrais c'est :
1- si le fichier existe pas il le copie (ca ca marche j'y arrive tout seul  :sol: )
2- si le fichier existe deja c'est de le renommer : nom_fichier(i)
3- si il faut incrementer le (i) jusqu'a une valeur nom prise
 
J'attend vos post avec impatience :jap:


---------------
Il faut la chercher
Reply

Marsh Posté le 26-05-2005 à 15:54:45    

soju a écrit :

au fait pourquoi tu appelles 2 fois copy ???


 
+1

Reply

Marsh Posté le 26-05-2005 à 15:56:36    

tu peux rajouter date("Y_m_d_H_m_i" , time()) a la fin du fichier a renommer.

Reply

Marsh Posté le 26-05-2005 à 16:00:40    

ou alors  
$i = 1;
 
while(file_exists($filename.'('.$i.').'.$ext))
{
$i++;
}

Reply

Marsh Posté le 26-05-2005 à 16:00:40   

Reply

Marsh Posté le 26-05-2005 à 16:04:43    

afbilou a écrit :

tu peux rajouter date("Y_m_d_H_m_i" , time()) a la fin du fichier a renommer.


 
merci Afbilou, mais je crois que la version poster par benamoubeach m'interesse malgré que je trouve la tienne interessante pour faire un historique :bounce:


---------------
Il faut la chercher
Reply

Marsh Posté le 26-05-2005 à 16:39:23    

Merci afbilou en fait je retiens ta solution par rapport a benamoubeach cela permet de faire une mini historisation.
 :hello:   :bounce:  :hello:  :bounce:


---------------
Il faut la chercher
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed