如何在C#项目中利用HttpClient实现一个文件上传功能-创新互联

这期内容当中小编将会给大家带来有关如何在C# 项目中利用HttpClient实现一个文件上传功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

目前累计服务客户成百上千家,积累了丰富的产品开发及服务经验。以网站设计水平和技术实力,树立企业形象,为客户提供网站建设、网站制作、网站策划、网页设计、网络营销、VI设计、网站改版、漏洞修补等服务。成都创新互联公司始终以务实、诚信为根本,不断创新和提高建站品质,通过对领先技术的掌握、对创意设计的研究、对客户形象的视觉传递、对应用系统的结合,为客户提供更好的一站式互联网解决方案,携手广大客户,共同发展进步。

HttpClientMultipartFormDataContent(传送门)最低适用于.NET Framework 4.5版本

发送端代码

using (HttpClient client = new HttpClient())
{
  var content = new MultipartFormDataContent();
  //添加字符串参数,参数名为qq
  content.Add(new StringContent("123456"), "qq");

  string path = Path.Combine(System.Environment.CurrentDirectory, "1.png");
  //添加文件参数,参数名为files,文件名为123.png
  content.Add(new ByteArrayContent(System.IO.File.ReadAllBytes(path)), "file", "123.png");

  var requestUri = "http://192.168.1.108:56852/api/Test/SaveFile";
  var result = client.PostAsync(requestUri, content).Result.Content.ReadAsStringAsync().Result;

  Console.WriteLine(result);
}

接收端代码

[HttpPost]
public async Task SaveFile([FromForm]string qq, IFormFile file)
{
  return await Task.Run(() =>
  {
    try
    {
      //保存文件到本地
      var filefullPath = Path.Combine(Directory.GetCurrentDirectory(), file.FileName);
      using (FileStream fs = new FileStream(filefullPath, FileMode.Create))
      {
        file.CopyTo(fs);
        fs.Flush();
      }
    }
    catch (Exception ex)
    {
      return Fail(file.FileName + "---" + ex.Message);
    }
    return Success();
  });
}

注意:如果要通过参数形式接收数据,需要确保参数名称和上面发送请求中设置的名称一致,否则无法自动绑定到参数中,且需要给参数加上[FromForm]的标记。

使用model对象接收数据

public class SaveFileModel
{
  public string qq { get; set; }
  public IFormFile File { get; set; }
}
public async Task SaveFile([FromForm]SaveFileModel model)
{
  //......
}

使用HttpContext从请求的Form中获取数据

public async Task SaveFile()
{
  return await Task.Run(() =>
  {
    var files = HttpContext.Request.Form.Files;
    var qq = HttpContext.Request.Form["qq"];
    //......
  });
}

上述就是小编为大家分享的如何在C# 项目中利用HttpClient实现一个文件上传功能了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。


文章名称:如何在C#项目中利用HttpClient实现一个文件上传功能-创新互联
链接分享:http://azwzsj.com/article/iiepe.html