C# HttpClient 上传大文件带进度

在Httpclient 上传文件时 需要显示进度,需要添加 ProgressMessageHandler 在NuGet中添加 引用
Microsoft.AspNet.WebApi.Client  一下是全部代码包括文件上传

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
private async void button2_Click(object sender, EventArgs e)
      {
          HttpClientHandler handler = new HttpClientHandler();
          ProgressMessageHandler progressMessageHandler = new ProgressMessageHandler(handler);
          progressMessageHandler.HttpSendProgress += ProgressMessageHandler_HttpSendProgress;
          var httpClient = new HttpClient(progressMessageHandler);
          httpClient.Timeout = Timeout.InfiniteTimeSpan;
          var url = "http://10.141.40.176:5236/main/Uploadfile";
          var content = new MultipartFormDataContent();
          content.Add(new StringContent("ulami"), "Department");
          content.Add(new StringContent("1"), "taskname");
          content.Add(new StringContent("false"), "cover");
         // StringContent loginContent = new StringContent("{\"username\":\"admin\",\"password\":\"123456\"}", Encoding.UTF8, "application/json");
          var filepath = textBox1.Text;//97.6MB
          using var fileStream = new FileStream(filepath, FileMode.Open, FileAccess.Read);
          using var streamContent = new StreamContent(fileStream, 102400);
          content.Add(streamContent, "file", "测试文件1.ppt");
          var response = await httpClient.PostAsync(url, content);
          var str = await response.Content.ReadAsStringAsync();
          textBox2.Text = str;
          //    try
          //    {
          //        //上传服务器的地址(web服务)
          //        string address = "http://10.141.40.176:7245/main/dwj";
          //        //上传后文件保存的名称
          //        string saveName = DateTime.Now.ToString("yyyyMMddHHmmss");
          //        int count = FileUpload.UpLoad_Request(address, filePath, saveName,progressBar1);
          //        if (count > 0)
          //        {
          //            MessageBox.Show("上传文件成功!");
          //        }
          //        else
          //        {
          //            MessageBox.Show("上传文件失败!");
          //        }
          //    }
          //    catch (Exception ex)
          //    {
 
          //        Console.WriteLine(ex.Message);
          //    }
      }
 
      private void ProgressMessageHandler_HttpSendProgress(object sender, HttpProgressEventArgs e)
      {
          Console.WriteLine(e.ProgressPercentage + "%");
      }

  

 

posted @   ¥东方不败  阅读(665)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示