AJUDA COM PROGRESSBAR EM UPLOAD FTP
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
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
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...
O evento UploadProgressChanged é o que você precisa usar.
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
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
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...
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.
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.
ainda estou tentando fazer com os exemplos que o KERPLUNK postou...Uma hora eu consigo...
Se alguem souber como ultilizar o exemplo que o KerpLunk postou agradeco..
Queria poder ajudar, e inclusive ia melhorar o meu caso, só que utilizo o FtpRequest, e não webcliente.
é possivel utilizar isso em FtpRequest ?
é possivel utilizar isso em FtpRequest ?
Tópico encerrado , respostas não são mais permitidas