[PHP] Comment fait-on pour renommer un fichier ?

Comment fait-on pour renommer un fichier ? [PHP] - Programmation

Marsh Posté le 11-03-2002 à 19:16:04    

J'ai essayé avec la fonction rename() mais ça marche pas. Y me met :  
Warning: Rename failed (No such file or directory) in /home/cryx/www/admin/index.php on line 144
 
Warning: Rename failed (No such file or directory) in /home/cryx/www/admin/index.php on line 145
 
Pourtant tous mes chemins sont bons et mes noms de fichier ancien et nouveau sont OK aussi...
 
Si qq'un a une solution...

Reply

Marsh Posté le 11-03-2002 à 19:16:04   

Reply

Marsh Posté le 11-03-2002 à 19:41:12    

Uuuuuup !

Reply

Marsh Posté le 11-03-2002 à 19:44:14    

juste pour verif tes fichiers sont pas en lecture seule?

Reply

Marsh Posté le 11-03-2002 à 19:45:34    

file déjà les lignes correspondantes de ton code :sarcastic:  
 
t'as essayé en utilisant basename() avant ?


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 11-03-2002 à 19:51:50    

Non pas de lecture seule.
Pour basename c peut-être ça mais je sais aps comment ça mache ni à quoi ça sert. tu peux m'expliquer ?
Le code :
rename("$rep_img_small/$old_fichier", "$rep_img_small/$new_fichier" );
rename("$rep_img_big/$old_fichier", "$rep_img_big/$new_fichier" );

Reply

Marsh Posté le 11-03-2002 à 19:57:12    

ok alors c'est normal que ça fonctionne pas, tu ne dois utiliser dans le rename() que le nom du fichier sans aucun path dedans
 
9.28.1 basename  
[Notes en ligne] [Exemples]
Sépare le nom du fichier et le nom du dossier.  
 
string basename (string path)  
basename() prend en paramètre le chemin complet d'un fichier et en extrait le nom du fichier.  
Sous Windows, les caractères (/) et antislash (\) sont utilisés comme séparateurs de dossier. Sous les autres OS, seul le caractère slash (/) est utilisé.  
 
Exemple avec basename()  
 
<?php
  $path = "/home/httpd/html/index.php3";
  $file = basename($path);
  // $file est affecté avec "index.php3"
?>
     
 
 
 
ça donne donc
 
$path = "$rep_img_small/$old_fichier";
$old_fichier = basename($path);
$new_fichier = "nomdufichier";
rename($old_fichier,$new_fichier);
 
ça devrait fonctionner, à toi de voir comment tu veux gérer les anciens / nouveaux noms et répertoires.
 
EDIT : je suis pas sur pour le nom sans path.. t'as vérifié le chmod de tes fichiers ?

 

[jfdsdjhfuetppo]--Message édité par Sh@rdar--[/jfdsdjhfuetppo]


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 11-03-2002 à 21:11:16    

t sous quel OS ?
fais un echo de tes variables pour voir
et un  
if(file_exists("$rep_img_small/$old_fichier" ) echo "ok";
ca marche?
 
Shardar ca marche avec le path...

 

[jfdsdjhfuetppo]--Message édité par kayasax--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 12-03-2002 à 18:31:35    

> kayasax : oui j'ai déjà essayé tout ça
> Sh@rdar : j'étais déjà allé voir dans la doc PHP mais j'avais pas compris leur explication. J'essaie ce que tu me dis, ça devrait marcher.
Merci à tous !

Reply

Marsh Posté le 12-03-2002 à 23:10:40    

kayasax a écrit a écrit :

t sous quel OS ?
Shardar ca marche avec le path...  




 
ouais j'avais un doute avant de poster  :ange:  
 
wait and see :hello:


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Sujets relatifs:

Leave a Replay

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