Page 1 sur 1

Faire une copie toute simple en php mais sur le réseau

Posté : 14 janv. 2010, 11:15
par sigalou
Je galère pour essayer de copier le fichier :
\\domotique\repertoire\fichier1.txt
vers
\\domotique\repertoire\fichier2.txt

copy("\\domotique\repertoire\fichier1.txt","\\domotique\repertoire\fichier2.txt");

copy("\\\domotique\\repertoire\\fichier1.txt","\\\domotique\\repertoire\\fichier2.txt");


ne fonctionnent pas.

Pour info, il s'agit d'un réseau local, il n'y a aucun souci de droit d'accès.
Pouvez vous m'aider ?

Merci

Re: Faire une copie toute simple en php mais sur le réseau

Posté : 14 janv. 2010, 12:11
par @rthur
Bonjour,

Je n'ai pas une réponse à ta question vu que c'est un cas de figure que je n'ai jamais mis en oeuvre.
Toutefois dans ta ligne ci dessous, tu doubles chaque antislash pour éviter qu'ils soient considérés comme un caractère d'échappement.
Donc pour la racine, il te faudrait 4 antislashs et non 3
copy("\\\\domotique\\repertoire\\fichier1.txt","\\\\domotique\\repertoire\\fichier2.txt");
Par ailleurs ce que tu pourrais essayer également (mais pas sûr que cela marche pour la racine) c'est de remplacer les antislashs par des slashs
copy("//domotique/repertoire/fichier1.txt","//domotique/repertoire/fichier2.txt");

Re: Faire une copie toute simple en php mais sur le réseau

Posté : 14 janv. 2010, 13:50
par sigalou
Non, ni l'un ni l'autre ne fonctionne.

(J'ai même essayé de créer un disque réseau z:, ça ne fonctionne pas non plus.)

Ce qui fonctionne :
:arrow: copy("C:\\test.txt","C:\\test2.txt");

Ce qui ne fonctionne pas :

:arrow: copy("\\\\domotique\\repertoire\\fichier1.txt","C:\\test2.txt");
:arrow: copy("\\\domotique\\repertoire\\fichier1.txt","C:\\test2.txt");
:arrow: copy("\\domotique\repertoire\fichier1.txt","C:\\test2.txt");
:arrow: copy("//domotique/repertoire/fichier1.txt","C:\\test2.txt");

[function.copy]: failed to open stream: Permission denied

Visiblement, ce n'est pas qu'il ne trouve pas le fichier mais qu'il n'y a pas accès.

Re: Faire une copie toute simple en php mais sur le réseau

Posté : 14 janv. 2010, 15:35
par jojo1000
Si tu travailles en local laisses le chemin absolu.
Sinon peut-être que tu te gourres dans ton arborescence ou encore qu'effectivemment tu ne disposes des permissions nécessaires à la lecture ou à l'écriture dans tes dossiers

Re: Faire une copie toute simple en php mais sur le réseau

Posté : 14 janv. 2010, 16:39
par @rthur
Pour info, il s'agit d'un réseau local, il n'y a aucun souci de droit d'accès.
[function.copy]: failed to open stream: Permission denied
Bon alors effectivement c'est un problème de droit d'accès.

Après quelques recherches, il s'agit bien d'un soucis de permissions. Cf le dernier message de ce message qui donne quelques pistes : http://bugs.php.net/bug.php?id=25805

Re: Faire une copie toute simple en php mais sur le réseau

Posté : 14 janv. 2010, 17:50
par sigalou
J'ai apache comme serveur, mais sorry, je n'ai pas compris ce qu'il fallait mettre en paramètre :?
L'anglais :cry:

Re: Faire une copie toute simple en php mais sur le réseau

Posté : 15 janv. 2010, 01:01
par niuxe
Hello,

Je pense aussi à une histoire de chmod(pour faire simple parce qu'il y a à dire dessus, mets comme second argument 777). N'oublie pas de faire un test dessus :
if(chmod(...))
...
else
...
À la place de la série d'anti-slash, essaie avec la constante prédéfini de PHP : DIRECTORY_SEPARATOR. ;)