[resolut]faire un batch pour uploader un fichier sur un serveur?

faire un batch pour uploader un fichier sur un serveur? [resolut] - Win NT/2K/XP - Windows & Software

Marsh Posté le 06-11-2009 à 22:43:09    

Bonsoir je ne sais pas si je suis dans la bonne section.
je suis sous windows, mon but serait d'uploader un fichier dans un serveur web. est ce possible?
sur le forum php zero on m'indique d'utiliser un batch sous windows

Code :
  1. en fait tu peux créer un batch file qui uploaderait le fichier. Et tu peu créer une tache planifiée sous windows pour exécuter le batchfile une fois par jour.


je n'ai jamais fait ce genre de manip comment procede t-on si c'est faisable?
avec quel moyen on upload le fichier?


Message édité par keo64 le 07-11-2009 à 18:11:33
Reply

Marsh Posté le 06-11-2009 à 22:43:09   

Reply

Marsh Posté le 07-11-2009 à 01:10:33    

utilise le programme "ftp" qui est dispo en ligne de commande sous windows
 
Il y a un exemple ici:
http://www.howtogeek.com/howto/win [...] mand-line/


---------------
Protégez la Nature ! Message écrit sur des électrons recylcés !
Reply

Marsh Posté le 07-11-2009 à 08:35:40    

merci du coup de pouce. Je n'ai pas tout à fait compris (je suis pas très doué en anglais :(  donc:
1 -je crée un fichier .bat par exemple uploadsql.bat

Code :
  1. @echo off
  2. echo user MyUserName> ftpcmd.dat
  3. echo MyPassword>> ftpcmd.dat
  4. echo bin>> ftpcmd.dat
  5. echo put %1>> ftpcmd.dat
  6. echo quit>> ftpcmd.dat
  7. ftp -n -s:ftpcmd.dat SERVERNAME.COM
  8. del ftpcmd.dat


2- je remplace sur ce uploadsql.bat les login et mot de passe ainsi que le nom du serveur?  
3- que doit t'on faire avec cette commande -s?(echo cd /pathname/>>ftpcmd.dat)

Code :
  1. What this batch file is doing is scripting the ftp utility using the -s option for the command line utility.


4- faut t'il mettre cette commande dans le .Bat?

Code :
  1. echo cd / chemin />> ftpcmd.dat


5 une fois crée le .bat on utilise cette exemple, il faut tapez toute ces commandes pour réaliser l'upload par le client?
 

Code :
  1. > uploadsql FileToUpload.zip
  2.     Connected to ftp.myserver.com.
  3.     220 Microsoft FTP Service
  4.     ftp> user myusername
  5.     331 Password required for myusername.
  6.     230 User myusername logged in.
  7.     ftp> bin
  8.     200 Type set to I.
  9.     ftp> put FileToUpload.zip
  10.     200 PORT command successful.
  11.     150 Opening BINARY mode data connection for FileToUpload.zip
  12.     226 Transfer complete.
  13.     ftp: 106 bytes sent in 0.01Seconds 7.07Kbytes/sec.
  14.     ftp> quit


 
Est ton obligé de le zipper? car ce fichier va être exploté par php pour mettre a jour sa bdd, peut être que php peu le dezziper?
 
il me faudrais d'abord une explication du fontionement de ce tutorial  :sarcastic:


Message édité par keo64 le 07-11-2009 à 08:41:33
Reply

Marsh Posté le 07-11-2009 à 09:12:11    

Tu peux utiliser simplement curl.exe qui existe sous Windows (voir Google).

Reply

Marsh Posté le 07-11-2009 à 10:21:35    

merci de l'info mais du coté client si j'utilise curl comment je procède car le pc client n'est pas un serveur web?
 
j'ai lu quelque tuto curl, je suis un peu perdu  :??:  
pourrait-ton me donner le début de la méthode a suivre


Message édité par keo64 le 07-11-2009 à 10:38:38
Reply

Marsh Posté le 07-11-2009 à 10:59:53    

curl.exe est un exécutable autonome sous Windows, pas besoin de serveur ou d'autres logiciels.
 
Pour uploader avec login/mot de passe :
    curl -u login:password -T chemin\fichier_a_uploader ftp://site_a_uploader/nom_fichier_uploade
 
curl --help pour syntaxe des commandes.
 
Dans ton cas, c'est une simple commande dans le batch :
    curl -u MyUserName:MyPassword -T %1 ftp://SERVERNAME.COM
 
Tu peux par exemple télécharger curl.exe ici :
http://www.zdnet.fr/telecharger/lo [...] 01071s.htm

Reply

Marsh Posté le 07-11-2009 à 11:43:54    

je n'arrive a comprendre comment fonctionne cette executable??
 
faut t'il crée comme php un srcipt et l'executer avec le naviguateur?
 
faut t'il enregistrer un fichier .curl par exemple le mettre dans son répertoire ou celle de windows et crée un raccourcit, ou il suffira de cliquer dessus pour qu'il traite les commandes.?
 
ou c'est encore autre chose?
 
 

Reply

Marsh Posté le 07-11-2009 à 12:04:28    

Oh là tu n'as apparemment jamais utilisé ni créé un fichier batch ? Je fais un effort là, car normalement
les indications précédentes devront suffire.
 
1) Lance notepad.exe (bloc-notes) :
2) Taper ceci (2 lignes) :
c:\tmp\curl -u MyUserName:MyPassword -T "nom_de_ton_fichier_a_uploader" ftp://SERVERNAME.COM
pause
Note : remplacer
- MyUserName par ton vrai login
- MyPassword par ton mot de passe
- nom_de_ton_fichier_a_uploader par le nom complet (avec chemin) de ton fichier, par exemple
c:\tmp\monfichier.dat.  
- servername.com par le nom de ton serveur FTP.
Cela suppose que tu as téléchargé curl.exe et mis dans c:\tmp. Si ce n'est pas le cas, il faut adapter
la syntaxe. Attention aux espaces dans les noms des répertoires, utilise alors les "quotes". Par exemple :
"c:\Documents and settings\xxx\yyy\curl" si tu as mis curl.exe dans c:\Documents and settings\xxx\yyy.
3) Dans bloc-notes, sauvegarde le contenu du fichier sous un nom et emplacement voulu, par exemple comme
c:\tmp\monftp.bat.
4) Ensuite avec ton explorateur Windows cliquer sur le fichier monftp.bat, ce qui va uploader le fichier.
Si tu as des erreurs, tu les verras à la console. Tu les corrigeras (erreur de frappe etc...).
Au final lorsque tout est OK tu peux enlever la ligne "pause", comme cela après l'upload la console disparaît aussi. Tu peux ensuite faire un raccourci vers le fichier batch.
 
Voilà, bonne chance.
 
 
PS. Ce curl.exe est un exécutable autonome, il ne dépend pas d'un navigateur, d'un serveur ni de PHP etc... Ce n'est pas l'extension cURL de PHP, c'est peut-être ce qui t'a mis dans la confusion.


Message édité par dnlilas le 07-11-2009 à 12:09:23
Reply

Marsh Posté le 07-11-2009 à 13:09:44    

merci d'avoir fait l'effort et merci de ton grand aide :)  je vais testé tous ca, mais c'est vrai que je n'ai jamais executer de batch donc c'est l'occasion.

Reply

Marsh Posté le 07-11-2009 à 14:19:29    

donc évidament la première fois ca fait des erreurs, j'ai donc adapté ce que tu m'a dit:
J'ai télécharger curl-7.17
j'ai decompresser curl, il me le decompresse dans un dossier nomé curl-7.17
je crée à la racine le dossier tmp sur mon hdd C:
je coupe tous ce qui a dans le dossier curl-7.17 et j'efface le dossier vide curl-7.17
je colle tous dans c://tmp
j'obtient dans c://tmp des dossiers et de fichiers, par contre je n'ai pas apprecu un curl.exe seulement un "buildconf.bat","curlconfig et curlstyle".
 
j'ai donc editer avec notepad++:
 
pour l'exemple supposons que :

Code :
  1. - le login est : KEO64
  2. - et que mon serveur est : http://keokaz.fr
  3. quand je me connecte sous filezilla je tape Hôte: ftp.keokaz.fr et mon login.
  4. et mon mot de passe : PASS


 
j'ai donc crée un fichier vide qui s'appelle test.txt
j'ai crée un fichier qui s'appelle test.bat:
une fois sauvgader ces 2 fichiers je clique 2 fois dessu sur test.bat

Code :
  1. C:\tmp\curl -u KEO64:PASS-T
  2. "C:\tmp\test.txt" ftp://keokaz.fr
  3. pause


 
voici ce qu'il me répond avec la fenêtre de commande windows en mode console:
 

Code :
  1. C:\tmp>C:\tmp\curl -u KEO64:PASS-T
  2. 'C:\tmp\curl' n'es pas reconnu en tant que commande internet
  3. ou externet, un programme exécutable ou un fichier de commandes.
  4. C:\tmp>"C:\tmp\test.txt


 
j'ai du oublié quelque chose?


Message édité par keo64 le 07-11-2009 à 14:25:23
Reply

Marsh Posté le 07-11-2009 à 14:19:29   

Reply

Marsh Posté le 07-11-2009 à 16:18:28    

En effet le lien initial que je t'ai donné ne contient pas l'exécutable curl.exe pour Windows,
mais seulement le source du package.
Tu peux donc effacer dans c:\tmp tous les fichiers et répertoires à l'exception de tes 2 fichiers
test.bat et test.txt.
 
Ensuite :
 
Voilà le bon lien :
http://curl.haxx.se/download/curl- [...] l-sspi.zip
 
Après téléchargement et unzip, tu verras un répertoire curl-7.19.5 qui contient curl.exe.
Copier ce curl.exe dans ton répertoire c:\tmp.
 
Maintenant, le contenu du fichier test.bat :

Code :
  1. C:\tmp\curl -u KEO64:PASS -T "C:\tmp\test.txt" ftp://keokaz.fr
  2. pause


 
(note : ci-dessus changer évidemment PASS par le mot de passe correct).
Tu noteras que le fichier test.bat ne contient que 2 lignes, au lieu de 3 comme le tien.
 
En cliquant ensuite sur test.bat tu verras l'exécution du ftp et le résultat.

Reply

Marsh Posté le 07-11-2009 à 16:43:48    

merci, j'ai testé le scipt, curl arrive maintenant a sortir de mon client, mai apparament il indique qu'il ne trouve pas mon ftp.keokaz.fr?

Code :
  1. C:\tmp>curl -u KEO64:PASS-T "C:\tmp\test.txt" ftp://keokaz.fr
  2. curl:(6) Could not resolve host: c:\tmp\test.txt"; Host not found
  3. curl:(67) Access denided: 530
  4. C:\tmp>pause
  5. Appuyer sur une touche pour continuer....


 
donc j'ai déjà essayer de faire un ping ftp.keokaz.fr

Code :
  1. Envoi d'une requete 'ping' sur ftp.start.ovh net [(l'ip de ovh)]
  2. les 4 ligne en de temps de réponse...


 
évidament j'ai bien remplacé les vrai login et mot de passe.
faut t'il triturer l'hebergeur ovh?
(normalement pour moi je ne pense pas car avec filezilla ca marche très bien...)
le fichier test.txt sera dans un temporaire c'est ca du serveur ovh?


Message édité par keo64 le 07-11-2009 à 16:46:29
Reply

Marsh Posté le 07-11-2009 à 16:49:59    

modification j'ai fait une faute de frape du mot de passe:
maintenant j'ai toujours le problème que le hoste not found
après j'ai un tableau des chmods
 

Code :
  1. -rw----r--  1  59571 100                20 aug        2008 .forward
  2. -rw----x--  1  59571 100                343 aug 30 2008 LISEZ-MOI
  3. ....


 
je suis aller regader avec filzila c'est le répertoire de ovh .


Message édité par keo64 le 07-11-2009 à 16:53:52
Reply

Marsh Posté le 07-11-2009 à 16:55:40    

Je crois que ca fonctionne une fois effacer la pause, je vais faire un scipt en php qui lit le test.txt ou peu être qu'on peu le voir directement sur filezilla?

Reply

Marsh Posté le 07-11-2009 à 17:04:53    

Regarde bien ce que j'ai mis, il faut un espace avant "-T" dans la commande.
 
Au lieu du batch, tu peux aussi simplement ouvrir une invite de commande puis taper/coller la commande (contenu du fichier .bat). Ainsi tu verras les messages, et en cas d'erreur il suffit de rappeler la commande (touche Up) puis la modifier et la resoumettre.
 
La ligne 'pause' n'influence pas le résultat, c'est seulement au début pour que tu puisses voir les messages, autrement la console disparaît. Si tu as l'invite de commande, la commande 'pause' n'est pas nécessaire.


Message édité par dnlilas le 07-11-2009 à 17:05:47
Reply

Marsh Posté le 07-11-2009 à 17:13:33    

j'ai ouvert la console et tapez directement en changeant ma faut du 6
 

Code :
  1. C:\tmp\curl -u loging:PASS -T "c:\tmp\test.txt" ftp://keokaz.fr


 
voici le résultat:
 

Code :
  1. %______0
  2. toatal__20
  3. %_____0
  4. Xferd___20
  5. Average Dload_2


 
Received  =0
il n'y a rien reçu
(quand j'ai testé le .bat le fenêtre client a bien disparu


Message édité par keo64 le 07-11-2009 à 17:14:37
Reply

Marsh Posté le 07-11-2009 à 17:25:20    

C'est que c'est bon. Vérifie avec ton filezilla qu'il y a un fichier créé à 0 octet. Normalement il te faut tester l'upload en utilisant un fichier ayant un certain contenu (pas fichier 0 octet).


Message édité par dnlilas le 07-11-2009 à 17:25:37
Reply

Marsh Posté le 07-11-2009 à 17:49:58    

j'ai uploadé avec un autre fichier de 8Ko
(on vois la progression en mode console), jeux_video.sql, je suis aller sur filzilla et il est a la racine du l'hebergeur il est bien présent  :jap: , comment je vais pouvoir faire pour le mettre dans www, sinon php ne pourra l'extraire? :(
et ensuite comment je vais pouvoir faire pour qu'il le fasse tous les 24H?
en mettant d'autre instruction dans le .bat?


Message édité par keo64 le 07-11-2009 à 17:51:50
Reply

Marsh Posté le 07-11-2009 à 18:01:57    

Si par défault ton FTP FileZilla arrive au début à / du FTP, pour mettre dans www il suffit de faire :

Code :
  1. C:\tmp\curl -u login:PASS -T "c:\tmp\jeux_video.sql" ftp://ftp.keokaz.fr/www/


 
Si ton fichier .sql est à un autre emplacement du disque dur, il suffit de modifier la commande (console ou fichier .bat).
 
Pour lancer le fichier batch à une heure précise, utiliser le planificateur de tâches de Windows pour lancer le fichier .bat.
 
Si tu gardes la ligne 'pause', comme cela tu auras la trace du lancement avec le résultat. Après lorsque c'est au point
tu peux supprimer cette ligne (ajouter "rem" devant, ce qui donne :

Code :
  1. rem pause


ou simplement supprimer la ligne contenant 'pause'.


Message édité par dnlilas le 07-11-2009 à 18:02:27
Reply

Marsh Posté le 07-11-2009 à 18:11:17    

est ce que je suis bête ne ne pas mettre un autre chemin ca fonctionne en tous, enfin j'espère que si le fichier fait 2Mo il ne vas pas raccorcher.
 
j'ai trouvé un tuto pour la tache planifié
http://sravier.free.fr/info/w2k_taches_plan.html
 
je pense que j'ai résolut ce problème d'upload en tous ca merci beaucoup a toi :)
 
 

Reply

Sujets relatifs:

Leave a Replay

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