代码之家  ›  专栏  ›  技术社区  ›  Bruce Adams

使用webclient.uploadFile上载文件时获取上载进度

  •  13
  • Bruce Adams  · 技术社区  · 15 年前

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

    2 回复  |  直到 9 年前
        1
  •  22
  •   Glorfindel Doug L.    9 年前

    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
     }
    
        2
  •  2
  •   AgentFire    10 年前

    将事件处理程序添加到webclient.uploadProgressChanged并调用webclient.uploadFileAsync。

    WebClient.UploadProgressChanged 例如文档。