AJUDA COM PROGRESSBAR EM UPLOAD FTP

KURTGU 12/07/2012 14:44:10
#405944
AFINAL POR QUE ESSA PROGRESSBAR NAO FUNCIONA....

Imports System.IO
Imports System.Net
Imports System.Security
Imports System.Threading

Public Class Form1

Dim cr As NetworkCredential
Shadows mandar As Thread
Dim ext As FileInfo
Dim WithEvents request As WebClient

Private Sub enviar()
If TextBox2.Text <> [Ô][Ô] Then
If TextBox1.Text <> [Ô][Ô] Then
Dim cr As New NetworkCredential([Ô]USUARIO[Ô], [Ô]SENHA[Ô])
Try
Dim request As New WebClient
request.Credentials = cr
Dim ext As New FileInfo(TextBox1.Text)
request.UploadFile([Ô]ftp://a4333313@bydario.site90.com/imagens/[Ô] & TextBox2.Text & ext.Extension, TextBox1.Text)
PictureBox1.ImageLocation = TextBox3.Text
Catch ex As WebException

End Try
Else
MsgBox([Ô]falta o arquivo[Ô])
End If
Else
MsgBox([Ô]falta o nome do arquivo[Ô])
End If
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Control.CheckForIllegalCrossThreadCalls = False
Dim mandar As New Thread(AddressOf enviar)
mandar.IsBackground = True
mandar.Start()
End Sub

Private Sub TextBox1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TextBox1.MouseClick
TextBox1.Clear()
Me.ofd1.Multiselect = True
Me.ofd1.Title = [Ô]Selecionar Arquivos[Ô]
ofd1.InitialDirectory = [Ô]Area de trabalho[Ô]
ofd1.Filter = [Ô]Texts (*.txt;*.csv)|*.txt;*.csv|[Ô] & [Ô]All files (*.*)|*.*[Ô]
ofd1.CheckFileExists = True
ofd1.CheckPathExists = True
ofd1.FilterIndex = 2
ofd1.RestoreDirectory = True
ofd1.ReadOnlyChecked = True
ofd1.ShowReadOnly = True

Dim dr As DialogResult = Me.ofd1.ShowDialog()
If dr = System.Windows.Forms.DialogResult.OK Then
For Each arquivo As [String] In ofd1.FileNames
TextBox1.Text = arquivo
Try

Catch ex As SecurityException
MessageBox.Show((([Ô]Erro de segurança Contate o administrador de segurança da rede.[Ô] & vbLf & vbLf & [Ô]Mensagem : [Ô]) + ex.Message & vbLf & vbLf & [Ô]Detalhes (enviar ao suporte):[Ô] & vbLf & vbLf) + ex.StackTrace)
Catch ex As Exception
MessageBox.Show(([Ô]Não é possível exibir a imagem : [Ô] & arquivo.Substring(arquivo.LastIndexOf([Ô]\[Ô]c))))
End Try
Next
End If

End Sub

Private Sub request_UploadProgressChanged(ByVal sender As Object, ByVal e As System.Net.UploadProgressChangedEventArgs) Handles request.UploadProgressChanged
ProgressBar1.Value = e.ProgressPercentage
ProgressBar1.Maximum = 100

End Sub

Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
Dim Nome As String
Nome = Replace(Path.GetExtension(ofd1.FileName.ToString), [Ô].[Ô], [Ô][Ô])
TextBox3.Text = [Ô]ftp://a4333313@bydario.site90.com/imagens/[Ô] & TextBox2.Text & [Ô].[Ô] & Nome
PictureBox1.ImageLocation = TextBox3.Text
End Sub

End Class
KURTGU 12/07/2012 14:46:55
#405945
O upload esta sendo feito normalmente e ate mais rapido do que eu pensei mais o que acontece e que simplesmente nao da pra saber em quantos % esta o upload...
KERPLUNK 12/07/2012 15:01:44
#405946
Resposta escolhida
O evento UploadProgressChanged é o que você precisa usar.
KURTGU 12/07/2012 15:03:55
#405947
entao KERPLUNK JA TO USANDO...Nao esta certo?

Private Sub request_UploadProgressChanged(ByVal sender As Object, ByVal e As System.Net.UploadProgressChangedEventArgs) Handles request.UploadProgressChanged
ProgressBar1.Value = e.ProgressPercentage
ProgressBar1.Maximum = 100

End Sub
KERPLUNK 12/07/2012 15:08:59
#405948
Se você olhar os exemplos no site que passei, vai ver que precisa adicionar um Handler para que possa disparar o evento de forma assíncrona...
NILSONTRES 12/07/2012 18:12:08
#405956
KERPLUNK,
Poderia disponibilizar os links desses exemplos, eu já faço upload com barra de progresso, mas fiz isso a dois anos atras, é meio trabalhoso, eu diria
gambiarra talves, já que calculo os bytes enviados, e vou calculando para a progress.
Acredito que utilizando essa sub request_UploadProgressChanged, seja mais pratico.
Obrigado.
KURTGU 13/07/2012 15:09:41
#406038
ainda estou tentando fazer com os exemplos que o KERPLUNK postou...Uma hora eu consigo...
KURTGU 15/07/2012 18:25:05
#406141
Se alguem souber como ultilizar o exemplo que o KerpLunk postou agradeco..
NILSONTRES 16/07/2012 13:49:09
#406190
Queria poder ajudar, e inclusive ia melhorar o meu caso, só que utilizo o FtpRequest, e não webcliente.
é possivel utilizar isso em FtpRequest ?
Tópico encerrado , respostas não são mais permitidas