[R] Fonction FTP

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
Sydneysyd
Niveau 5
Niveau 5
Messages : 177
Enregistré le : jeu. 24 nov. 2011 08:58
Status : Hors ligne

[R] Fonction FTP

#1

Message 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
Modifié en dernier par Sydneysyd le sam. 29 mars 2014 16:58, modifié 1 fois.
-Il n'y a qu'en jouant avec les plus forts que l'on progresse-
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [...] Fonction FTP

#2

Message par PandiPanda »

Bonsoir,
quelque chose de ce genre ci?
► Afficher le texte
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Avatar du membre
Sydneysyd
Niveau 5
Niveau 5
Messages : 177
Enregistré le : jeu. 24 nov. 2011 08:58
Status : Hors ligne

Re: [...] Fonction FTP

#3

Message 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 ?
-Il n'y a qu'en jouant avec les plus forts que l'on progresse-
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [...] Fonction FTP

#4

Message 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
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Avatar du membre
Sydneysyd
Niveau 5
Niveau 5
Messages : 177
Enregistré le : jeu. 24 nov. 2011 08:58
Status : Hors ligne

Re: [...] Fonction FTP

#5

Message 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 ?
-Il n'y a qu'en jouant avec les plus forts que l'on progresse-
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [...] Fonction FTP

#6

Message 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
 
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Avatar du membre
Sydneysyd
Niveau 5
Niveau 5
Messages : 177
Enregistré le : jeu. 24 nov. 2011 08:58
Status : Hors ligne

Re: [...] Fonction FTP

#7

Message par Sydneysyd »

En gros je n'avais pas besoin de variables à l'avance pour me connecter ?
-Il n'y a qu'en jouant avec les plus forts que l'on progresse-
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [...] Fonction FTP

#8

Message 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
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Avatar du membre
Sydneysyd
Niveau 5
Niveau 5
Messages : 177
Enregistré le : jeu. 24 nov. 2011 08:58
Status : Hors ligne

Re: [...] Fonction FTP

#9

Message 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
-Il n'y a qu'en jouant avec les plus forts que l'on progresse-
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [...] Fonction FTP

#10

Message 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.
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Avatar du membre
Sydneysyd
Niveau 5
Niveau 5
Messages : 177
Enregistré le : jeu. 24 nov. 2011 08:58
Status : Hors ligne

Re: [...] Fonction FTP

#11

Message 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 !
-Il n'y a qu'en jouant avec les plus forts que l'on progresse-
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [R] Fonction FTP

#12

Message par PandiPanda »

C'est bel et bien le pourcentage. Il faut simplement avoir un entier.
► Afficher le texte
voir ici la doc
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Avatar du membre
Sydneysyd
Niveau 5
Niveau 5
Messages : 177
Enregistré le : jeu. 24 nov. 2011 08:58
Status : Hors ligne

Re: [R] Fonction FTP

#13

Message 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 ^^
-Il n'y a qu'en jouant avec les plus forts que l'on progresse-
Répondre