faire un batch pour uploader un fichier sur un serveur? [resolut] - Win NT/2K/XP - Windows & Software
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/
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 :
|
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 :
|
4- faut t'il mettre cette commande dans le .Bat?
Code :
|
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 :
|
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
Marsh Posté le 07-11-2009 à 09:12:11
Tu peux utiliser simplement curl.exe qui existe sous Windows (voir Google).
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
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
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?
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.
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.
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 :
|
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 :
|
voici ce qu'il me répond avec la fenêtre de commande windows en mode console:
Code :
|
j'ai du oublié quelque chose?
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 :
|
(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.
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 :
|
donc j'ai déjà essayer de faire un ping ftp.keokaz.fr
Code :
|
é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?
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 :
|
je suis aller regader avec filzila c'est le répertoire de ovh .
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?
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.
Marsh Posté le 07-11-2009 à 17:13:33
j'ai ouvert la console et tapez directement en changeant ma faut du 6
Code :
|
voici le résultat:
Code :
|
Received =0
il n'y a rien reçu
(quand j'ai testé le .bat le fenêtre client a bien disparu
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).
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 , 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?
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 :
|
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 :
|
ou simplement supprimer la ligne contenant 'pause'.
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
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
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