美文网首页
C# HttpClient 实现多文件同时上传

C# HttpClient 实现多文件同时上传

作者: 三梦哥 | 来源:发表于2020-03-19 10:41 被阅读0次

HttpClient 是微软在.NET Framework 4.5 引入的一个HTTP客户端库,命名空间为 System.Net.Http,目的是简化开发者对Http的调用。

下面演示使用HttpClient 实现多文件同时上传

  class Program
    {
        private const string Url = "https://localhost:44312/api/Upload";
        private static List<string> FilePath = new List<string>
        {
            @"C:\Users\xxx\Desktop\test\large (10) - 副本 - 副本.jpg",
            @"C:\Users\xxx\Desktop\test\large (11) - 副本 - 副本.jpg"
        };
        static async Task Main(string[] args)
        {
            Console.WriteLine("开始上传?");
            Console.ReadKey();
            HttpClientHandler handler = new HttpClientHandler();
            ProgressMessageHandler progressMessageHandler = new ProgressMessageHandler(handler);
            progressMessageHandler.HttpSendProgress += ProgressMessageHandler_HttpSendProgress;
            HttpClient httpClient = new HttpClient(progressMessageHandler);
            using var multipartFormData = new MultipartFormDataContent();
            foreach (var file in FilePath)
            {
                multipartFormData.Add(new ByteArrayContent(await File.ReadAllBytesAsync(file)), "files", file);
            }
            var response = await httpClient.PostAsync(Url, multipartFormData);
            if (response.IsSuccessStatusCode)
            {
                var data = await response.Content.ReadAsStringAsync();
                Console.WriteLine(data);
            }
        }

        private static void ProgressMessageHandler_HttpSendProgress(object sender, HttpProgressEventArgs e)
        {
            Console.WriteLine(e.ProgressPercentage+"%");
        }
    }

ProgressMessageHandler 是为了向调用者报告上传或者下载的进度。
注:要上传多文件multipartFormData添加的HttpContentName要为files,ASP.NET Core API 后端才能正常解析出IFormFIle

相关文章

  • C# HttpClient 实现多文件同时上传

    HttpClient 是微软在.NET Framework 4.5 引入的一个HTTP客户端库,命名空间为 Sys...

  • 使用HttpClient实现文件上传

    HttpClient4.x可以自带维持会话功能,只要使用同一个HttpClient且未关闭连接,则可以使用相同会话...

  • php文件上传

    单文件上传实现: 文件上传代码参考:文件上传 多文件上传实现: 前台调用: shell方式 浏览器方式: 后台处理...

  • 2.使用工具类上传

    1.上传工具类的使用 2.实现单文件上传 3. 实现多文件上传 4.动态选择多文件上传 5.上传文件要注意以下几点...

  • 多文件上传

    多文件上传实现

  • Android上传多文件记录

    Android上传多文件记录 由于项目需要上传文件,但是之前的逐个文件的上传不符合设计要求,所以想到多文件同时上传...

  • c#文件上传下载功能实现

    c#文件上传下载功能实现 NuGet 安装SqlSugar 1.Model文件下新建 DbContext 类 2....

  • spring-boot 文件上传下载

    1.文件上传配置 2.前端写法 3.后端实现单文件上传 4.后端实现多文件上传 5.后端实现文件下载

  • 2018-07-20

    java httpclient 模拟表单发送数据@ApiOperation(value = "上传文件", not...

  • vue原生文件上传,可以多文件上传

    1.单文件上传 2.多文件上传 在input上加属性multiple="multiple"即可实现多文件上传,也可...

网友评论

      本文标题:C# HttpClient 实现多文件同时上传

      本文链接:https://www.haomeiwen.com/subject/cpykyhtx.html