Bonjour,
Je suis un peu ennuyé voir même plus !!!!!
Je voudrai copier un fichier txt depuis mon serveur intranet vers un serveur W2008 mais je n'y arrive pas.
Je ne sais vraiment pas comment faire !!!
Avez vous des idées à me donner ???
A+
Bonjour,
Je suis un peu ennuyé voir même plus !!!!!
Je voudrai copier un fichier txt depuis mon serveur intranet vers un serveur W2008 mais je n'y arrive pas.
Je ne sais vraiment pas comment faire !!!
Avez vous des idées à me donner ???
A+
J'ai peut être trouvé une solution.
En fait j'ai monté un dossier partagé Windows sous linux.
Au préalable il faut créer dans Active Directories un utilisateur pour l'authentification
Moi je l'ai nommé "toor" avec un password bien sur avec des droits administrateur
Pour plus d'information voici le site qui m'a aidé http://www.pintaric.net/index.php?po...ows-sous-Linux
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2mount -v -t cifs //192.168.0.45/partage_windows /point_de_montage -o username=toor,password=pwd,file_mode=0666,dir_mode=0770
Ceci permet d'avoir directement dans le dossier"point_de_montage" un accès au partage windows.
Du coup j'ai bien mon lien entre les partages !!!!
MAIS, je ne sais pas comment avec mon application intranet je pourrai modifier les fichiers qui se trouvent dans le partage.
J'ai beau essayer rien n'y fait, pour preuve je n'arrive même pas à detecter la présence des fichiers.
Maintenant j'espère que l'un d'entre vous aura une idée !!!!!
Allé, soyez sympa quoi !!!!
A+
tu as monter un partage mais où l'a tu monter? dans quel répertoire? si tu ne l'a pas monter dans le répertoire d'hébergement de ton intranet ton serveur web ne pourra pas détecter ton partage. à la rigueur création d'un lien (ln -s ) vers se répertoire dans le répertoire ou se trouve tes scripts de travail .
pense aussi à vérifier les droits sur ton répertoire et tes fichiers.
Bon alors heuuuuuuu!!!!
D'abord bonjour,
En fait le dossier de point de montage est bien dans un répertoire d'hébergement de mon site intranet.
Pour ce qui est des droits de mon partage, quand j'ai créé celui-ci je lui ai donné les attributs de partage à 0770 (lecture/écriture sur les dossiers).
Je ne vois où j'ai pu pécher !!!!
A+
quel type de fichier à modifier?
est il possible d'avoir un morceau de code en exemple?
Les fichiers à modifier sont des fichiers TXT tous bêtes
Contenu du fichier texte:
Ceci permet de lancer une installation automatique en fonction des paramètres contenu dans le fichier pour l'application "APPLI 01.02.00"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 [APPLI 01.02.00] test_type=FICHIER test_createur=APPLI test=c:\dossier\APPLI\version.dat commande=X:\partage_serveur\APPLI 01.02.00\setup.exe -s reptravail=X:\partage_serveur\APPLI 01.02.00 process=_ISDel.exe date=15/09/2010
Ce fichier txt sert pour une application développée avec AUTO-IT qui est exécutée à chaque démarrage de nos PCs.
Ensuite au niveau de ma page PHP, je ne sait pas quoi lancer comme commande pour effectuer la copie vers le serveur W2008.
Comme je l'ai expliqué au début mon point de montage permet de voir sur le serveur intranet le dossier "Toto" qui se trouve sur le serveur W2008.
Et c'est dans ce dossier "Toto" que veux enregistrer mon fichier TXT afin qu'il puisse être répliqué sur tous nos serveurs distants.
Au niveau des droits, ils sont à 0770 ( écriture / lecture ) sur le point de montage .
Mais ce qui est marrant (enfin presque !!!) quand j'ouvre un putty sur le serveur intranet, je peux créer, modifier et supprimer les fichiers sur le point de montage, idem avec WINSCP....
Pour ma page pHP, je ne sais pas si je dois faire un
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 if (!copy("test.txt", "fichiers_teledif/test.txt")) { echo "<br>La copie $file du fichier a échoué...\n"; }
Si tu as une idée ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 if (file_exists($_POST["fichier"])) { $handle = fopen($_POST['fichier'],"wb"); if (is_writable($_POST['fichier'])) { $_POST["objet"] = str_replace('\\\\','\\',$_POST["objet"]); if (fwrite($handle , $_POST["objet"]) === FALSE) { echo "Impossible d'écrire dans le fichier (".$_POST['fichier'].")"; exit; } else { $sql = "SELECT information FROM ".$CLASS->Ttele." WHERE ".$CLASS->Ttele.".name_appli LIKE '".$_POST['appli']."'"; $data=mysql_query($sql,$CLASS->connexion) or die("La requête -<2>- n'a pu aboutir "); $count = mysql_result($data, 0); echo '<div><h3 style="color:#274E9C; text-decoration:underline">Contenu de la base de données pour '.$_POST['appli'].'</h3>'; echo '<A id=deconnexion href="javascript:window.close()"><IMG title=Déconnexion alt=Déconnexion src="images/webAppli_entete_btDeconnect.gif"> </A>'; echo '</div>'; echo '<PRE><textarea name="objet" cols="70" rows="20" style="background-color:#FFFFFF;color:#3963AD;border:1px solid #3963AD;" readonly>'.$count.'</textarea></PRE>'; echo '<br>Modification terminée'; fclose($handle); } } else echo "Fichier pas autorisé en écriture !!!"; } else echo "Le Fichier n'existe pas !!!";
est tu sur de te connecter avec le même utilisateur que celui utiliser pour la navigation dans les pages web?Au niveau des droits, ils sont à 0770 ( écriture / lecture ) sur le point de montage .
Mais ce qui est marrant (enfin presque !!!) quand j'ouvre un putty sur le serveur intranet, je peux créer, modifier et supprimer les fichiers sur le point de montage, idem avec WINSCP....
ensuite le répertoire monté "fichiers_teledi" est bien au même niveau que ton script?
enfin un petit test, si tu copie ton fichier dans le même répertoire que l'originale puis un rename pour le déplacer cela donne quoi?
Pour ce qui est des utilisteurs, j'ai créé un utilisateur dans "ActiveDirectory" qui est identique à l'utilisateur sur l'intranet.
De toutes façons si les users étaient pas bon je n'aurais pas pu créer le point de montage.
Pour ce qui est du dossier "fichiers_teledif", c'est mon point de montage sur le serveur intranet. Quand le point de montage est installé je retrouve da
ns ce dossier l'ensemble des fichiers du serveur W2008 que je voudrai modifier...
Pour le rest je le ferai demain matin car là j'ai pas le temps...
Donc suite demain matin
hop hop hop l'utilisateur montant le partage n'est pas forcément l'identique de celui utiliser lorsque tu navigue. pour ma part j'ai un utilisateur spécifique à la navigation, un spécifique à la base de données et un à mes partages. je gère des droits différents en fonction de ses comptes.
mais bon essais de voir déjà ce que j'ai indiqué juste avant et un ptit ls -l des fichier présent sur ton serveur windows car ce n'est pas parce que tu as les droits sur ton répertoire monté que les fichier en hérite forcément.
Hello Vil'Coyote,
Bon alors avec un peu de retard ....
j'ai fait un ls -l sur le point de montage; tous les fichiers sont en "-rw-rw-rw-"et les dossiers sont en "drwxrwxrw-".
Ensuite j'ai fait un petit test :
J'ai fait la même chose avec les commandes "mv" et "rename".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 echo "- Test -<br>"; exec("cp -f test.txt fichiers_teledif/test/test.txt",$array,$exec); echo "<br>Retour de exec :".$exec;
Dans tous les cas $exec retourne 1, donc pas bon du tout...
Je suis sûr que tu as raison pour les user mais comment faire ....
Je sens que tu as une idée ...
A+
Pour un peu plus de comprehension du probleme : tu pourrai faire un :
et tu auras le retour de la commande
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 echo "- Test -<br>"; $temp=exec("cp -f test.txt fichiers_teledif/test/test.txt",$array,$exec); print_r($temp);
Tartine
Bon ben la commandene m'a rien retournée !!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $temp=exec("cp -f test.txt fichiers_teledif/test/test.txt",$array,$exec); print_r($temp);
Par contre
Le résultat de "$exec" est égal à 1.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 echo "- Test -<br>"; $temp=exec("cp -f test.txt fichiers_teledif/test/test.txt",$array,$exec); print_r($temp); echo "<br>résultat de exec():".$exec;
Donc la commande ne passe pas comme il faut !!!
J'ai trouvé une autre commande qui me semble serait plus adaptée:
Et voici le retour de la commande:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 echo "- Test -<br>"; $temp=exec("smbclient ".$fichier_dest." -U user%pwd -c 'put fichiers_teledif/test.txt'"); print_r($temp);
appli est un partage Windows- Test -
NT_STATUS_OBJECT_NAME_INVALID opening remote file \//XX.XXX.X.XX/appli/test.txt
fichiers_teledif est un partage SAMBA
$fichier_dest = "//XX.XXX.X.XX/appli"
Qu'en pensez vous les enfants?
Toujours pas d'idées pour mon problème !!!!!!!!!!!
![]()
![]()
![]()
J'y suis enfin arrivé !!!!
Alors pour commencer il faut sur le serveur WINDOWS 2008 créer des partages sur tous les dossiers où l'on souhaite copier les fichiers.
Les fichiers à télécharger sont toujours des fichiers TXT comme vu précédement.
Par contre, dans ma base mySQL, dans ma table APPLI, j'ai un champs qui est rempli avec le contenu de chaque fichier de mise à jour.
Exemple de la table :
Sur le serveur INTRANET, il faut créer un dossier (Attention aux droits) où on aura l'ensemble des fichiers que l'on voudra envoyer vers le W2008.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 idx_dif = 1 name_appli = APPLI information =[APPLI 3.5.1] date=28/09/2010 + ligne de commande d'installation
On va d'abord modifier le fichier en local sur le serveur INTRANET, puis ensuite on copiera ce fichier sur le serveur W2008 via FTP.
Voici le code dans ma page en php :
Voilou j'y suis arrivé!!!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64 $ftp_server = "WWW.XXX.YYY.ZZZ"; $ftp_user_name = "anonymous"; $ftp_user_pwd = "anonymous"; $_POST["objet"] // Contient le nouveau texte à écrire dans le fichier // chemin vers le partage Windows 2008 $_POST["fichier_dest"]="partage/nom_du_fichier.txt"; //chemin vers le fichier sur le serveur intranet; $_POST["fichier"] = /site/intranet/application/partage/nom_du_fichier.txt if (file_exists($_POST["fichier"])) { $handle = fopen($_POST['fichier'],"wb"); if (is_writable($_POST['fichier'])) { $_POST["objet"] = str_replace('\\\\','\\',$_POST["objet"]); if (fwrite($handle , $_POST["objet"]) === FALSE) { echo "Impossible d'écrire dans le fichier (".$_POST['fichier'].")"; exit; } else { // REQUETE SQL permettant de modifer la table APPLI en focntion des modifications saisies $sql = "SELECT information FROM Ttele WHERE Ttele.name_appli LIKE '".$_POST['appli']."'"; $data=mysql_query($sql,$connexion) or die("La requête -<2>- n'a pu aboutir "); // Enregistrement du fichier dans le partage $count = mysql_result($data, 0); $conn_id = ftp_connect($ftp_server); $login_result = ftp_login($conn_id, $ftp_user_name,$ftp_user_pwd); // Vérification de la connexion if ((!$conn_id) || (!$login_result)) { echo "La connexion FTP a échoué!"; echo "Tentative de connexion à $ftp_server avec $ftp_user_name"; die; } else { echo "Connecté à $ftp_server, avec user '$ftp_user_name' <br>"; } if(ftp_put($conn_id, $_POST['fichier_dest'],$_POST['fichier'], FTP_BINARY)) { echo "Le fichier $file a été chargé avec succès sur //".$ftp_server."/".$_POST['fichier_dest']."/ \n"; } else { echo "Il y a eu un problème lors du chargement du fichier\n"; } // Fermeture de la connexion ftp_close($conn_id); } } else echo "Fichier pas autorisé en écriture !!!"; } else echo "Le Fichier n'existe pas !!!"; } else echo "Aucun fichier à ouvrir !!!";
Je ne sais pas si ça va intéresser quelqu'un mais on ne sait jamais !!!!
A+
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager