Upload via FtpWebRequest avec ProgressBar [S.O.S]

Signaler
Messages postés
1
Date d'inscription
jeudi 8 juillet 2010
Statut
Membre
Dernière intervention
8 juillet 2010
-
Messages postés
269
Date d'inscription
dimanche 31 mai 2009
Statut
Membre
Dernière intervention
12 mars 2011
-
Bonjour, je suis nouveau sur le forum, et debutant en VB.NET

Je suis sur un programme d'upload en ce moment, qui fonctionne via FTP

Voila le code source de l'upload, qui est evidamment en BackgroundWorker.
        Try
            Dim request As System.Net.FtpWebRequest = DirectCast(System.Net.WebRequest.Create("ftp://xxxxxx" & picname), System.Net.FtpWebRequest)
            request.Credentials = New System.Net.NetworkCredential("xxxxxx", "xxxxxx")
            request.Method = System.Net.WebRequestMethods.Ftp.UploadFile
            Dim File() As Byte = System.IO.File.ReadAllBytes(imgpath.Text)
            Dim UpFile As System.IO.Stream = request.GetRequestStream()
            UpFile.Write(File, 0, File.Length)
            UpFile.Close()
            UpFile.Dispose()


            MessageBox.Show("File(s) uploaded successfully", "Done", MessageBoxButtons.OK, MessageBoxIcon.Information)

        Catch ex As Exception
            If MessageBox.Show("Error Connecting To FTP," & vbNewLine & "Please try again", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) _
             = Windows.Forms.DialogResult.Retry Then
                Exit Sub
            End If
        End Try


Ce code fonctionne tres bien, mais je n ai vraiment aucune idee de la marniere de m y prendre pour renvoyer l'avancement de l upload a via BackgroundWorker1.ReportProgress( que dois-je inserer pour envoyer l avancement de l upload ?)

Merci infiniment a ceux qui prendront la peine de me repondre, je cherche comme un fou depuis des heures sur le net (en fait j y ai meme passe la nuit xD) mais rien a faire. Merci

2 réponses

Messages postés
269
Date d'inscription
dimanche 31 mai 2009
Statut
Membre
Dernière intervention
12 mars 2011

Salut,
si tu n'as qu'un fichier à
uploader je ne pense pas qu'avec
ce code tu puisses afficher
la progression de l'upload
mais par contre si tu en as plusieurs
tu peux rapporter la progression
avec un pourcentage que tu calcules
par rapport au nombre de fichiers
à uploader avec :
BackgroundWorker1.ReportProgress(nombre_de_fichier_uploadés)
qui appelle l'évenement
BackgroundWorker1_ProgressChanged
Avec une variable déclarée au début de ton code
qui contient le nombre de fichiers à uploader
tu pourras calculer le pourcentage de progression
par rapport au nombre de fichier uploadés.

@+
Messages postés
269
Date d'inscription
dimanche 31 mai 2009
Statut
Membre
Dernière intervention
12 mars 2011

ps : sinon tu n'est pas obligé
de mettre l'argument nombre_de_fichier_uploadés
je te dis ça car dans l'aide qui s'affiche
dans vb2008 ils disent que le premier arugment
doit être compris entre 0 et 100 alors
que c'est un integer (dont la valeur
est comprise entre -2 147 483 648 et 2 147 483 647...).
Sinon tu peux simplement appeller l'évenement avec :
BackgroundWorker1.ReportProgress(1) '' Tu peux mettre 1 ou n'importe quel autre nombre car dans la méthode que je te donnes on ne sert pas de ce nombre

et une fois l'évenement appelé tu fait le
calcul du pourcentage avec une variable
qui contient le nombre de fichiers uploadés
et une autre variable qui contient le total de fichiers
à uploader... C'est comme ça que je fais...
Si tu as besoin d'aide pour le code tu peux aller voir le
code que contient l'évenement BackgroundWorker1_ProgressChanged
dans ma source ( http://www.vbfrance.com/codes/FILTER-FAIRE-MOSAIQUES-IMAGES_51902.aspx ), c'est un programme tout autre
mais qui utilise un backgroundworker...