Page 1 sur 1

[R] Progression d'un transfert FTP

Posté : lun. 06 juin 2011 11:12
par cortexx
Bonjour,

J'ai un petit soucie avec l'affichage de la progression d'un transfert FTP. Avec le code ci dessous le transfert s'éffectue, mais la ProgressBar ne réagis pas, pourriez vous m'aidez ?

Code : Tout sélectionner

#include <GUIConstantsEx.au3>
#include <FTPEx.au3>
#include <File.au3>

Opt("GUIOnEventMode", 1)

$server = 'ftp.xxxx.fr'
$username = 'xxxx'
$pass = 'xxxx'

$GUI_FTP = GUICreate("Transfert FTP", 200, 70)
GUISetOnEvent($GUI_EVENT_CLOSE, "WindowCloseForm")

$ProgressBar = GUICtrlCreateProgress(10, 10, 180, 15)
GUICtrlCreateButton("Transfert", 60, 40, 80, 20)
GUICtrlSetOnEvent(-1, "_TransfertFTP")

GUISetState()
While 1
    Sleep(100)
WEnd

Func _TransfertFTP()
    $Open = _FTP_Open('FTP Control')
    $Conn = _FTP_Connect($Open, $server, $username, $pass)

    $FTP_FilePut = _FTP_FilePut($Conn, "test", "test", $FTP_TRANSFER_TYPE_UNKNOWN)
    _FTP_ProgressUpload($Conn, $FTP_FilePut, "test" , "_Update_Progress")

    _FTP_Close($Conn)
    _FTP_Close($Open)
EndFunc

Func _Update_Progress($Percentage)
    GUICtrlSetData($ProgressBar, $Percentage)
EndFunc

Func WindowCloseForm()
    Exit
EndFunc

Re: [..] Progression d'un transfert FTP

Posté : lun. 06 juin 2011 12:50
par matwachich
Essai ça

Code : Tout sélectionner

#include <GUIConstantsEx.au3>
#include <FTPEx.au3>
#include <File.au3>

Opt("GUIOnEventMode", 1)

$server = 'ftp.xxxx.fr'
$username = 'xxxx'
$pass = 'xxxx'

$GUI_FTP = GUICreate("Transfert FTP", 200, 70)
GUISetOnEvent($GUI_EVENT_CLOSE, "WindowCloseForm")

$ProgressBar = GUICtrlCreateProgress(10, 10, 180, 15)
GUICtrlCreateButton("Transfert", 60, 40, 80, 20)
GUICtrlSetOnEvent(-1, "_TransfertFTP")

GUISetState()
While 1
    Sleep(100)
WEnd

Func _TransfertFTP()
    $Open = _FTP_Open('FTP Control')
    $Conn = _FTP_Connect($Open, $server, $username, $pass)

    $FTP_FilePut = _FTP_FilePut($Conn, "test", "test", $FTP_TRANSFER_TYPE_UNKNOWN)
    _FTP_ProgressUpload($Conn, $FTP_FilePut, "test" , "_Update_Progress")

    _FTP_Close($Conn)
    _FTP_Close($Open)
EndFunc

Func _Update_Progress($Percentage)
    GUICtrlSetData($ProgressBar, $Percentage)
    Return 1 ; ###
EndFunc

Func WindowCloseForm()
    Exit
EndFunc

Re: [..] Progression d'un transfert FTP

Posté : mar. 07 juin 2011 09:09
par cortexx
Merci, mais ça ne focntionne pas :?
Le transfert se fait bien, mais j'arrive pas à récupérer cette variable $Percentage. Quand je fait un ConsoleWrite($Percentage) il veux rien m'afficher aussi, donc je pense que c'est l'appel de fonction _Update_Progress à partir de la commande _FTP_ProgressUpload qui fonctionne mal.

Re: [..] Progression d'un transfert FTP

Posté : mar. 07 juin 2011 10:53
par cortexx
J'ai trouvé :D
Modifier la fonction _TransfertFTP comme ça

Code : Tout sélectionner

Func _TransfertFTP()
    $Open = _FTP_Open('FTP Control')
    $Conn = _FTP_Connect($Open, $server, $username, $pass)

    _FTP_ProgressUpload($Conn, "test", "test" , "_Update_Progress")

    _FTP_Close($Conn)
    _FTP_Close($Open)
EndFunc
et bien laisser le Return 1 dans la fonction _Update_Progress