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

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Faire une copie toute simple en php mais sur le réseau

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

par niuxe » 15 janv. 2010, 01:01

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. ;)

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

par sigalou » 14 janv. 2010, 17:50

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

par @rthur » 14 janv. 2010, 16:39

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

par jojo1000 » 14 janv. 2010, 15:35

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

par sigalou » 14 janv. 2010, 13:50

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

par @rthur » 14 janv. 2010, 12:11

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");

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

par sigalou » 14 janv. 2010, 11:15

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