使用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文档。