上传数据时显示进度
我在这里使用以下代码上传文件
Public Function UploadFile(ByVal oFile As FileInfo) As Boolean
Dim ftpRequest As FtpWebRequest
Dim ftpResponse As FtpWebResponse
Try
ftpRequest = CType(FtpWebRequest.Create(FTPSite + CurrentDirectory + oFile.Name), _
FtpWebRequest)
ftpRequest.Method = WebRequestMethods.Ftp.UploadFile
ftpRequest.Proxy = Nothing
ftpRequest.UseBinary = True
ftpRequest.Credentials = New NetworkCredential(UserName, Password)
ftpRequest.KeepAlive = KeepAlive
ftpRequest.EnableSsl = UseSSL
If UseSSL Then ServicePointManager.ServerCertificateValidationCallback = _
New RemoteCertificateValidationCallback(AddressOf ValidateServerCertificate)
Dim fileContents(oFile.Length) As Byte
Using fr As FileStream = oFile.OpenRead
fr.Read(fileContents, 0, Convert.ToInt32(oFile.Length))
End Using
Using writer As Stream = ftpRequest.GetRequestStream
writer.Write(fileContents, 0, fileContents.Length)
End Using
ftpResponse = CType(ftpRequest.GetResponse, FtpWebResponse)
ftpResponse.Close()
ftpRequest = Nothing
Return True
Catch ex As WebException
Return False
End Try
End Function
我想扩展它,所以我也可以上传进度。
问题是我不知道从哪里开始。
显示上传进度的“逻辑”是什么?
在预定义的部分“拆分文件”并上传或什么?
没有找到相关结果
已邀请:
2 个回复
艾食魄轻县
事件ProgressChanged和RunWorkerCompleted在UI线程上运行,并允许您使用当前下载的状态相应地更新进度条。它们看起来像这样:
在后台线程上调用DoWork,并且您想要实际调用您编写的UploadFile()函数。 对于FtpWebRequest,您将首先想要获取文件的大小,然后在上传数据块时,将您上传的内容除以文件的完整大小,以获得完整的百分比。就像是
希望这可以帮助。
阀傻
接下来,您将要向UpLoadFile所属的类添加事件:
最后,在UpLoadFile中,您将要提出此事件:
无论你在哪里打电话,你都可以听取这个事件: