关于ftp上传的VB.NET进度条

关于ftp上传的VB.NET进度条,vb.net,ftp,progress,Vb.net,Ftp,Progress,您好,我正在尝试添加一个进度条到FTP图像上传,虽然我看了很多例子在互联网上,我已经尝试了很多事情,但无法得到任何工作与我下面的代码。我想要一个进度条来跟踪上传的进度,然后显示100%一旦完成 我的编码: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim s As String = "ABCD

您好,我正在尝试添加一个进度条到FTP图像上传,虽然我看了很多例子在互联网上,我已经尝试了很多事情,但无法得到任何工作与我下面的代码。我想要一个进度条来跟踪上传的进度,然后显示100%一旦完成

我的编码:

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

            Dim s As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
            Static r As New Random
            Dim sb As New StringBuilder
            For i As Integer = 1 To 8
                Dim idx As Integer = r.Next(0, 35)
                sb.Append(s.Substring(idx, 1))
            Next

            Clipboard.SetText("http://my-site.com/osdf/" + sb.ToString() + ".png")


            Using ms As New System.IO.MemoryStream
                sc.CaptureDeskTopRectangle(Me.boundsRect).Save(ms, System.Drawing.Imaging.ImageFormat.Png)

                ''Close()
                Using wc As New System.Net.WebClient
                    AddHandler wc.UploadDataCompleted, AddressOf UploadCompleted
                    wc.UploadData("ftp://USERNAME:PASSWORD@My-site.com/pic/uploads/" + sb.ToString() + ".png", ms.ToArray())

                End Using
                MsgBox("File Uploaded", MsgBoxStyle.Information)
            End Using

        End Sub
我怎样才能用我的代码做到这一点


提前感谢,我将感谢您的支持。

更改您的代码并使用WebClient事件,如:

Using wc As New System.Net.WebClient
    AddHandler wc.UploadDataCompleted, AddressOf wc_UploadDataCompleted
    AddHandler wc.UploadProgressChanged, AddressOf wc_UploadProgressChanged
    wc.UploadData("ftp://USERNAME:PASSWORD@My-site.com/pic/uploads/" & sb.ToString() & ".png", ms.ToArray())
End Using
您还需要:

Private Sub wc_UploadDataCompleted(sender As Object, e As System.Net.UploadDataCompletedEventArgs) 
    MsgBox("File Uploaded", MsgBoxStyle.Information)
End Sub

Private Sub wc_UploadProgressChanged(sender As Object, e As System.Net.UploadProgressChangedEventArgs)
    ProgressBar1.Value = e.ProgressPercentage
End Sub
您需要使用“UploadDataAsync”而不是“UploadData”,才能在progressbar中看到增量,或者使用BackgroundWorker和UploadData方法