Rename() qui me retourne "Is a Directory" - PHP - Programmation
Marsh Posté le 04-09-2006 à 14:11:52
t'aurais pas fait un opendir sans closedir sur celui-ci des fois?
Marsh Posté le 04-09-2006 à 15:51:23
Non, c'est la seule action que j'effectue sur un fichier/repertoire
Marsh Posté le 04-09-2006 à 17:12:36
c'est normal le .. dans /home/esox/projet/../uploads/directory ?
Marsh Posté le 04-09-2006 à 19:05:02
Tout à fait
Marsh Posté le 05-09-2006 à 00:58:41
non mais là tu renomme pas, tu le déplaces...
essaie un exec(mv) si tu travailles en local
Marsh Posté le 05-09-2006 à 08:31:55
Exec ne sera pas activé étant donné que c'est sur un serveur mutualisé.
Mais je suis au courant que je le deplace, c'est bien mon intention d'ailleurs, et si je regarde la doc tout semble dire que c'est bien autorisé..
Marsh Posté le 05-09-2006 à 12:12:24
c'est pas un problème de
rename("/path/from/", "/path/to" )
au lieu de
rename("/path/from", "/path/to" )
Marsh Posté le 05-09-2006 à 12:13:42
question con :
pourquoi tu utilises
/home/esox/projet/../uploads/directory
puisque tu donne le chemin absolu...
equivalent à : /home/esox/uploads/directory
Marsh Posté le 06-09-2006 à 18:57:19
C'est une raison "interne", j'ai une classe qui me fournis le path des differents fichiers, du coups je me retrouve parfois des .. dans le path ... Mais je doute que ça puisse etre grave non ?
Pour l'histoire du path finissant ou non par / , j'ai tenté toutes les possibilitées mais rien n'a changé
Marsh Posté le 06-09-2006 à 19:29:10
je sais pas alors... je teste ça en local, ça fonctionne...
<?php
echo rename("b", "dest/c" ) ;
?>
avec les suffisament de droits bien sûr
Marsh Posté le 07-09-2006 à 13:29:58
Salut,
Avec le test que tu mets là, chez moi aussi ça marche.
J'ai pris mon rename et mis (avec les liens ecrits en dur) dans un script à part.
Le problème est qu'au lieu de boujer le repertoire , il créé un fichier vide au point de destinaison, sans toucher à l'autre repertoire.
J'ai essayé de faire un unlink sur un des fichiers contenu dans le repertoire de depart et ça marche .. donc ça devrait pas etre un probleme de permissions (surtout que j'ai fait un chmod 0777 -R sur le repertoire d'arrivée et de depart)
Marsh Posté le 07-09-2006 à 14:42:56
tu le dis toi-même : au lieu de "bouger" le répertoire. Je doute que rename soit la bonne commande...
ou alors c'est uniquement pour les repertoires vides ?
Marsh Posté le 07-09-2006 à 14:47:13
En effet si le répertoire n'est pas vide, ça peut poser des problèmes je pense.
Essaie peut être de passer par un copy puis un unlink.
Marsh Posté le 07-09-2006 à 15:38:12
Ok donc du coups faut que je me tape un script qui fasse du cory/unlink recursif? .... Bordel mais c'est de mieu en mieu ce langage...
Je vais faire encore quelques tests et si ca marche pas je ferai comme ça (je crois avoir vu un script qui fait ça dans les comments de la doc ... A voir )
Marsh Posté le 07-09-2006 à 16:31:41
ouais
apparement t'as une fct toute faite ici (3ème)
http://ch2.php.net/manual/en/function.copy.php
Marsh Posté le 04-09-2006 à 14:04:02
Bonjour,
Je suis entrain d'écrire une petit script qui déplace des fichiers/répertoires, et je tombe sur une erreur assez particulière..
voila la portion de code responsable :
Tous les is_readable() / is_writable() retournent true, et je me mange l'erreur suivante :
rename(/tmp/test,/home/esox/projet/../uploads/directory) [function.rename]: Is a directory
Hors dans la doc il est dit que rename peut aussi bouger des repertoires .. Je comprend vraiment pas ...
Merci de me flageller comme il se doit pour ce problème, qui doit être basé sur une faute débile comme tout.
Au revoir
---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait