Page 1 sur 1

[R] Fonction FTP

Posté : ven. 28 mars 2014 15:58
par Sydneysyd
Bonjour à tous,

Encore une fois, un grand merci pour tous ces conseils, qui m'ont permis de progresser et de créer des applications dans mon travail qui me font gagner un temps sur les paramétrages et les installations assez précieux.

Je suis en train de faire une appli, qui irait chercher des produits par FTP en demandant le nom d'utilisateur et le mot de passe.
Jusque là, rien de compliqué, j'ai utilisé l'udf FTPex que je trouve pas mal, mais j'ai quelques soucis de 'praticité' dirons nous lors de l'utilisation du FTP progress download

Les soucis sont les suivants :

1. Impossible de bouger la fenetre de progression, donc elle reste en plein milieu et c'est relativement gênant
2. Pas de pourcentage de téléchargement pour savoir où on en est sur la fenetre, et je ne sais pas comment faire pour le mettre
3. Impossible de modifier l'interface graphique de téléchargement, mais est-ce vraiment possible ?

J'aimerais savoir s'il existe un code pouvant réunir mes résolutions, j'ai parcouru le forum français et anglais mais rien (car pour mon FTP c'est le seul UDF qui me permet de télécharger depuis le FTP et en demandant les user et mot de passe)

Merci d'avance pour votre aide

Re: [...] Fonction FTP

Posté : ven. 28 mars 2014 18:46
par PandiPanda
Bonsoir,
quelque chose de ce genre ci?
► Afficher le texte

Re: [...] Fonction FTP

Posté : sam. 29 mars 2014 11:08
par Sydneysyd
Parfait ! Merci beaucoup !

Par contre, question pratique sur le code :

J'ai 4 boutons qui font la connexion FTP pour un produit à chaque fois

Donc, je vais être obligé de creer l'interface à chaque fois ?

Re: [...] Fonction FTP

Posté : sam. 29 mars 2014 11:59
par PandiPanda
Bonjour, quelque chose comme ca ?
► Afficher le texteavec une seule barre de progression
► Afficher le texteavec plusieur barre de progression
Il n'est pas du tout obligatoire de recréer l'interface.

si vous voulez lancer les divers telechargement ftp simultanément, c'est une autre histoire, étant donné que _FTP_ProgressDownload() est bloquant.
La solution serai de crée des processus "fils" qui s'occuperai du téléchargment, mais il n'est pas demandé actuellement , donc je m'étalerai pas plus dessus

Re: [...] Fonction FTP

Posté : sam. 29 mars 2014 14:43
par Sydneysyd
Excellent ! Merci encore ! ^^

Après, je me posais une autre question :

Je met le user et le mdp dans 2 variables, mais je ne vois pas comment je peux statuer si le mot de passe est juste ou non ?

Une idée ?

Une petite précision, j'ai mis des variables à la place des 'user' 'user' et le téléchargement ne s'effectue pas... et je sais que mon chemin est bon, ainsi que les codes.

Pour être plus précis :

_connFTP("127.0.0.1","user","user","test4.pdf","/test4.pdf")

_connFTP("127.0.0.1",$username,$pass,"test4.pdf","/test4.pdf")

le premier test4.pdf est bien le localfile ? Le chemin que l'on définit sur le poste ?

Re: [...] Fonction FTP

Posté : sam. 29 mars 2014 14:51
par PandiPanda
Bonjour,

Lors du _FTP_Connect(), vous entrer le username ainsi que le mdp, si il y'a une erreur ici c'est que la connection a échoué.

Code : Tout sélectionner

_connFTP($server,$username,$pass,$locaFile,$remoteFile)
;$server est le serveur
;$username est l'username
;$pass est le mot de passe
;$locaFile est le fichier en local
;$remoteFile est le fichier sur le serveur ftp
 

Re: [...] Fonction FTP

Posté : sam. 29 mars 2014 15:13
par Sydneysyd
En gros je n'avais pas besoin de variables à l'avance pour me connecter ?

Re: [...] Fonction FTP

Posté : sam. 29 mars 2014 15:15
par PandiPanda
Des variables a l'avance ou non, ca change pas grand chose ^^

voici un code d'exemple avec et sans variables
► Afficher le texte

Re: [...] Fonction FTP

Posté : sam. 29 mars 2014 15:34
par Sydneysyd
Malheureusement, je n'ai aucun téléchargement qui se fait, cela reste à 0% et il n'y a pas de progression, voici une partie de mon code. Merci d'avance,

Code : Tout sélectionner

#include <FTPEx.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <ButtonConstants.au3>

Local $username = Inputbox("Identifiants pour connexion FTP","Nom d'utilisateur ? ")
Local $pass = Inputbox("Identifiants pour connexion FTP","Mot de passe ? "," ","•")

#Region ### START Koda GUI section ### Form=c:\users\test\desktop\test\kidd.kxf
Global $Form1_1 = GUICreate("KIDD", 777, 242, 192, 124)
Global $KIDD = GUICtrlCreateGroup("Group", 8, 16, 761, 217)
Global $LabelBOL = GUICtrlCreateLabel("0%", 16, 168, 19, 17)
Global $Label1 = GUICtrlCreateLabel(" ", 13, 127, 183, 17)
Global $ProgressBOL = GUICtrlCreateProgress(16, 144, 177, 17)
Global $id_en_cours[3] = [0,0,0]
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###


While 1
 $nMsg = GUIGetMsg()
 Switch $nMsg
  Case $GUI_EVENT_CLOSE
   Exit

Case $Budget

    Local $sNomDossier = "DOC"

    DirCreate(@DesktopDir & "\" & $sNomDossier)

            $id_en_cours[0] = $LabelBOL
            $id_en_cours[1] = $Label1
            $id_en_cours[2] = $ProgressBOL
            _connFTP("http://ftp01.jvs.fr",$username,$pass,@DesktopDir & "\Budget HOL\Etique12-105x49.doc","Etique12-105x49.doc")
       If @error Then MsgBox(64,"Erreur","Mot de passe ou nom d'utilisateur incorrecte ! ")

 EndSwitch
WEnd


Func _connFTP($server,$username,$pass,$locaFile,$remoteFile)
    GUICtrlSetData($id_en_cours[1],$remoteFile)
    $Open = _FTP_Open('FTP Nomades')
    $Conn = _FTP_Connect($Open, $server, $username, $pass)
    If _FTP_ProgressDownload($Conn,$locaFile,$remoteFile,"_UpdateProgress") == -1 Then MsgBox(64,"","abort")
    $Ftpc = _FTP_Close($Open)
EndFunc

Func _UpdateProgress($percent)
    GUICtrlSetData($id_en_cours[0],$percent&"%")
    GUICtrlSetData($id_en_cours[2],$percent)
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Return -1 ; _FTP_DownloadProgress Aborts with -1, so you can exit you app afterwards
    EndSwitch
    Return 1 ; Otherwise contine Download
Endfunc
pour la connexion FTP, j'en ai crée un temporaire
► Afficher le texte
il y a une doc dedans que l'on peut télécharger

ftp valable 15 jours

Re: [...] Fonction FTP

Posté : sam. 29 mars 2014 15:47
par PandiPanda
Le problème de votre script ce situe ici;

_connFTP("http://ftp01.jvs.fr",$username,$pass,@DesktopDir & "\Budget HOL\Etique12-105x49.doc","Etique12-105x49.doc")

essayer avec ceci;

Code : Tout sélectionner

_connFTP("[color=#40BF00]ftp01.jvs.fr[/color]",$username,$pass,@DesktopDir & "\Budget HOL\Etique12-105x49.doc","[color=#00BF00]/[/color]Etique12-105x49.doc")
J'ai bel et bien réussi à télécharger ce fichier.

Re: [...] Fonction FTP

Posté : sam. 29 mars 2014 16:58
par Sydneysyd
Quel andouille...
Je pensais qu'il fallait mettre le protocole HTTP... n'importe quoi...

En tout cas un grand merci c'est parfait.

Juste une petite remarque mais je pense que ce n'est que du détail :

Lors du téléchargement, ce n'est pas réellement en % mais en bytes je pense. Donc, je ne sais pas si je vais le laisser.

Encore merci en tout cas, pour cette aide, plus que précieuse !

Re: [R] Fonction FTP

Posté : sam. 29 mars 2014 17:58
par PandiPanda
C'est bel et bien le pourcentage. Il faut simplement avoir un entier.
► Afficher le texte
voir ici la doc

Re: [R] Fonction FTP

Posté : sam. 29 mars 2014 18:40
par Sydneysyd
Moi qui programmait sur les CASIO et qui utilisait cette fonction, je ne savais même pas que c'était possible en AutoIT...

On peut vraiment tout faire !
Merci encore Pandi Panda ^^