[..] Upload un dossier par FTP + barre progression

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
phifi
Niveau 1
Niveau 1
Messages : 4
Enregistré le : mar. 28 janv. 2014 02:02
Status : Hors ligne

[..] Upload un dossier par FTP + barre progression

#1

Message par phifi »

Bonjour,

Depuis plusieurs jours, je suis à la recherche d'un code pour afficher une barre de progression pour indiquer aux utilisateurs de patienter, l'upload est en cours.
Je ne cherche pas à avoir une barre de progression qui indique le % restant, mais tout simple (pour simplifier les choses) une barre qui défile de gauche à droite (et vis-et-versa...).

- Upload FTP du dossier fonctionne
- J'ai bien une barre demandant de patienter qui fonctionne (récupéré sur ce forum, très jolie d'ailleurs :))
- mais je n'arrive pas à faire fonctionner les 2 fonctions en même temps (l'un ou l'autre).

C'est bien sur le 3ème point que j'ai besoin de vous, par avance merci.

Pendant l'upload (fonction : _UploadFTP()), je désire afficher la barre de défilement (fonction : _SliderRight()).

Voici mon code actuel :

Code : Tout sélectionner

#include <FTPEx.au3>
#include <GUIConstantsEx.au3>
#include <Constants.au3>
#include <ProgressConstants.au3>
#include <GUIConstants.au3>


HotKeySet("{ESC}", "endscript")

$Ca = GUICreate ( "" , 250 , 46 , -1 , -1 , $WS_POPUP,$WS_EX_TOPMOST+$WS_EX_WINDOWEDGE+$WS_EX_DLGMODALFRAME)
GUISetBkColor ( 0x000000 , $Ca )
$Da = GUICtrlCreateLabel ("    Transfert en cours ...",  23, -1, 250,23)
GuiCtrlCreateGraphic(-1, 1, 252,45,$SS_SUNKEN)
GUICtrlSetColor(-1, 0XFFFFFF)
GUICtrlSetColor ( $Da, 0XFFFFFF)
GUICtrlSetFont ($Da, "12" , "50" , "" , "Courrier New")
GUICtrlCreateGraphic(1, 23, 250,20)
GUICtrlSetColor(-1, 0x007F00)
GuiSetState(@SW_SHOW)
$PID=0

_UploadFTP()

Func _UploadFTP()
$s_ServerName = 'mon_IP'
$s_Username = 'monlogin'
$s_Password = 'monMdP'
$sLocalFolder = '.\test'
$sRemoteFolder = 'test'
$bRecursivePut = '0'
$i_Passive = '1'
$l_InternetSession = _FTP_Open('MyFTP Control')
$hFTPSession = _FTP_Connect($l_InternetSession, $s_ServerName, $s_Username, $s_Password, $i_Passive)
_FTP_DirCreate ( $hFTPSession, $sRemoteFolder )
_FTP_DirPutContents ( $hFTPSession, $sLocalFolder, $sRemoteFolder, $bRecursivePut )
$Ftpc = _FTP_Close($l_InternetSession)
    $PID=1
    MsgBox($MB_SYSTEMMODAL, "Terminé", "Envoi de vos fichiers logs terminé")
EndFunc

Func _test()
    $Passage=1
    if $Passage=1 Then _SliderRight()
    Return 1
EndFunc

Func _getmsg()

    $Msg = GUIGetMsg()
    If $Msg = $GUI_EVENT_CLOSE Then Exit

    ; Test du process. Si inexistant, on sort.
    If $PID=1 Then endscript()

EndFunc

Func _SliderRight()
        Local $newcolor,$color = 0x050000
    For $m = 0 To 245 Step 5
        $newcolor += $color
        $ba = GUICtrlCreateLabel( "", $m, 25, 4,16)
        GUICtrlSetBkColor($ba, $newcolor)
        Sleep(50)
    Next
    _getmsg()
    _SliderLeft()
EndFunc

Func _SliderLeft()
    Local $backcolor,$color = 0x050000
    For $m = 245 To 0 Step -5
        $backcolor += $color
        $ba = GUICtrlCreateLabel( "", $m, 25, 4,16)
        GUICtrlSetBkColor($ba, $backcolor)
        Sleep(50)
    Next
    _getmsg()
    _SliderRight()
EndFunc

Func endscript()
    Exit
EndFunc
PS : c'est mon tout 1er programme, et je ne suis pas développeur

Merci,
Cdt,
Phifi
Avatar du membre
Hackoo
Niveau 4
Niveau 4
Messages : 52
Enregistré le : ven. 03 févr. 2012 19:31
Localisation : Tunisie
Status : Hors ligne

Re: [..] Upload un dossier par FTP + barre progression

#2

Message par Hackoo »

Salut :)
Moi aussi je ne suis pas un expert en Autoit, mais j'ai essayé ce code trouvé dans le Net et ça marche bien avec une barre de progression ==> http://pastebin.com/ZsbHUUHC
► Afficher le texteCode de test
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information. Albert Einstein
Le savoir est la seule matière qui s'accroît quand on la partage. Socrate
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11818
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Upload un dossier par FTP + barre progression

#3

Message par Tlem »

Bonjour phifi.
Si vous prenez le temps de faire quelques recherches, vous trouverez sur le forum un sujet concernant les barres de progression. J'en avais proposé une comme vous recherchez. ;)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
phifi
Niveau 1
Niveau 1
Messages : 4
Enregistré le : mar. 28 janv. 2014 02:02
Status : Hors ligne

Re: [..] Upload un dossier par FTP + barre progression

#4

Message par phifi »

Bonjour,

Merci de vos réponses.

Hackoo : j'avais bien compris le fonctionnement de la fonction "_FTP_ProgressUpload", qui fonctionne malheureusement seulement pour l'upload d'un fichier, et non le contenu complet d'un dossier 'comme le propose "_FTP_DirPutContents"). A moins d'un loupé de mon côté ?

Tlem : j'ai fait beaucoup de recherche avant de poster ce message, c'est ma philosophie. Et à ce jour, je n'ai pas encore trouvé mon bonheur. j'avais effectivement trouvé lors de mais recherche un de vos posts, et j'ai d'ailleurs utilisé un de vos scripts, trouvé ici http://www.autoitscript.fr/forum/viewtopic.php?f=4&t=26

Mais global, débutant comme je suis je n'arrive pas à :
- lancer la barre de progression juste après la connexion au FTP
- lancer l'upload d'un contenu d'un répertoire pouvant contenir des fichiers avec des tailles importantes
- la barre continu pendant ce temps là à progresser
- et avant ou après la déconnexion du FTP, arrête la barre de progression.

A ce jour, je sais seulement lancer l'une ou l'autre fonction. Mais pas à faire jouer la barre de progression en arrière plan pendant l'upload.

En attendant, je l'espère, une aide. Je continu mes recherches
Encore merci
Cdt
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11818
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Upload un dossier par FTP + barre progression

#5

Message par Tlem »

Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
phifi
Niveau 1
Niveau 1
Messages : 4
Enregistré le : mar. 28 janv. 2014 02:02
Status : Hors ligne

Re: [..] Upload un dossier par FTP + barre progression

#6

Message par phifi »

Bonsoir,

Avec mon très petit niveau, je n'ai pas réussi avec vos méthode....
Je suis donc parti sur une autre piste, trouvée sur le forum qui pourrait me convenir, mais il y a un "mais".

La barre de défilement s'arrête de défiler pendant l'upload, et reprend à la fin de l'upload (ou lors de la déconnexion du FTP).

Question : comment faire pour que la barre de défilement continu de défiler pendant l'upload ?

Voici mon nouveau code :
► Afficher le texte
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11818
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Upload un dossier par FTP + barre progression

#7

Message par Tlem »

Bonsoir. L'exemple de ProgressBar.au3 est pourtant assez simple. :shock:

Récupérez la fonction _TheProGressBar(), initialisez la variable globale $ProgressBarTitle (avec le texte que vous souhaitez voir apparaitre) en début de script et lorsque vous devez afficher la barre de progression vous l'appelez avec la fonction AdlibRegister puis quand vous voulez l'arrêter $ProgressBarTitle a vide. :roll:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Hackoo
Niveau 4
Niveau 4
Messages : 52
Enregistré le : ven. 03 févr. 2012 19:31
Localisation : Tunisie
Status : Hors ligne

Re: [..] Upload un dossier par FTP + barre progression

#8

Message par Hackoo »

Salut :)
J'ai essayé la Progressbar de Tlem et ça marché pour moi 5/5 juste, il me reste la gestion d'erreurs de la connexion FTP etc...
► Afficher le texteExemple de Code Upload FTP + ProgressBar
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information. Albert Einstein
Le savoir est la seule matière qui s'accroît quand on la partage. Socrate
phifi
Niveau 1
Niveau 1
Messages : 4
Enregistré le : mar. 28 janv. 2014 02:02
Status : Hors ligne

Re: [..] Upload un dossier par FTP + barre progression

#9

Message par phifi »

Bonsoir,

Je confirme, le script fonctionne. Et j'ai fini par comprendre pourquoi je ne voyais pas le défilement de la barre de progression. Lors de l'upload d'un fichier de taille importante, exemple : 1Mega. La barre ne défile plus.
Et vu que mon script, upload dès le lancement de la barre de progression des fichiers de tailles importantes, et que le début du défilement est de la même couleur que le fond de la GUI (noir), je ne voyais rien. Et j'ai interpréter par erreur que cette méthode ne fonctionnait pas... Désolé.

Par contre, existe-il une solution pour que le défilement continu pendant l'upload ?

Merci
Répondre