使用Webclient.Uploadfile在文件上载期间获取上载进度
我有一个应用程序,使用webclient将文件上传到服务器。 我想在文件上传过程中显示进度条。 我将如何实现这一目标?
WebClient.UploadFileAsync将允许您执行此操作。
WebClient webClient = new WebClient(); webClient.UploadFileAsync(address, fileName); webClient.UploadProgressChanged += WebClientUploadProgressChanged;
…
void WebClientUploadProgressChanged(object sender, UploadProgressChangedEventArgs e) { Console.WriteLine("Upload {0}% complete. ", e.ProgressPercentage); }
请注意,线程将不再阻止上传,所以我建议使用:
webClient.UploadFileCompleted += WebClientUploadCompleted;
…
void WebClientUploadCompleted(object sender, UploadFileCompletedEventArgs e) { // The upload is finished, clean up }
将事件处理程序添加到WebClient.UploadProgressChanged并调用WebClient.UploadFileAsync。
有关示例,请参阅WebClient.UploadProgressChanged文档。