我想将文件上传到我的FTP服务器,凭据的值是userlabel passlabel和servlabel这些是凭证的所有相应标签.. Passlabel和userlabel实际上是混合的.. pass是user和userlabel is密码。我想实施一个prgressbar,我不知道如何做某人请帮助
到目前为止,这是我的代码。
Private Sub BW_DoWork(ByVal sender As System.Object,
ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BW.DoWork
Dim clsRequest As System.Net.FtpWebRequest = _
DirectCast(System.Net.WebRequest.Create(ServLabel.Text &
TextBox1.Text),
System.Net.FtpWebRequest)
clsRequest.Credentials = New System.Net.NetworkCredential(PassLabel.Text, UserLabel.Text)
clsRequest.Method = System.Net.WebRequestMethods.Ftp.UploadFile
' read in file...
Dim bFile() As Byte = System.IO.File.ReadAllBytes(txtFile.Text)
' upload file...
Dim clsStream As System.IO.Stream = _
clsRequest.GetRequestStream()
clsStream.Write(bFile, 0, bFile.Length)
clsStream.Close()
clsStream.Dispose()
BW.ReportProgress(clsStream.Position.ToString)
MsgBox("File Is Now In Database", MsgBoxStyle.OkOnly, "Upload Complete")
End Sub
答案 0 :(得分:0)
您只能将数组bFile
的一部分传递给clsStream.Write()
方法并重复此方法,直到所有部分都已写入流中。
PartsCount = 100
PartsLength = bFile.Length \ PartsCount
If PartLength * PartsCount = bFile.Length Then PartsCount -= 1
For i as Integer = 0 to PartsCount
If i <> PartsCount Then
clsStream.Write(bFile, i * PartsLength, PartLength)
Else
clsStream.Write(bFile, i * PartsLength, bFile.Length - (i * PartsLength))
End If
clsStream.Flush()
'calculate the progess here
Next
clsStream.Close()