使用Webclient.Uploadfile在文件上载期间获取上载进度

Bru*_*ams 14 .net c# vb.net webclient

我有一个应用程序,使用webclient将文件上传到服务器.我想在文件上传过程中显示进度条.我将如何实现这一目标?

Mat*_*ley 25

WebClient.UploadFileAsync将允许您执行此操作.

WebClient webClient = new WebClient();
webClient.UploadFileAsync(address, fileName);
webClient.UploadProgressChanged += WebClientUploadProgressChanged;
Run Code Online (Sandbox Code Playgroud)

...

void WebClientUploadProgressChanged(object sender, UploadProgressChangedEventArgs e)
{
        Console.WriteLine("Upload {0}% complete. ", e.ProgressPercentage);
}
Run Code Online (Sandbox Code Playgroud)

请注意,该线程将不再阻止上传,所以我建议使用:

 webClient.UploadFileCompleted += WebClientUploadCompleted;
Run Code Online (Sandbox Code Playgroud)

...

 void WebClientUploadCompleted(object sender, UploadFileCompletedEventArgs e)
 {
     // The upload is finished, clean up
 }
Run Code Online (Sandbox Code Playgroud)