最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C# 使用HttpClient上傳文件并附帶其他參數(shù)的步驟

 更新時(shí)間:2020年12月14日 09:14:39   作者:傅小灰  
這篇文章主要介紹了C# 使用HttpClient上傳文件并附帶其他參數(shù)的步驟,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下

HttpClientMultipartFormDataContent(傳送門)最低適用于.NET Framework 4.5版本

發(fā)送端代碼

using (HttpClient client = new HttpClient())
{
  var content = new MultipartFormDataContent();
  //添加字符串參數(shù),參數(shù)名為qq
  content.Add(new StringContent("123456"), "qq");

  string path = Path.Combine(System.Environment.CurrentDirectory, "1.png");
  //添加文件參數(shù),參數(shù)名為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<JsonResult> 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();
  });
}

注意:如果要通過參數(shù)形式接收數(shù)據(jù),需要確保參數(shù)名稱和上面發(fā)送請求中設(shè)置的名稱一致,否則無法自動(dòng)綁定到參數(shù)中,且需要給參數(shù)加上[FromForm]的標(biāo)記。

使用model對象接收數(shù)據(jù)

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

使用HttpContext從請求的Form中獲取數(shù)據(jù)

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

總結(jié)

這個(gè)問題是在寫一個(gè).Net Core項(xiàng)目時(shí)遇到的,以前在.Net Framework 4.0的時(shí)候,使用string拼接表單中文件的內(nèi)容,到處都是boundary分界線。用MultipartFormDataContent來進(jìn)行表單提交上傳文件是它內(nèi)部幫我們拼接了這個(gè)復(fù)雜的內(nèi)容。(可以用Fiddler抓一下請求看看)emm...我去找一下當(dāng)初是怎么弄的文件上傳,如果有再更新此文。

以上就是C# 使用HttpClient上傳文件并附帶其他參數(shù)的步驟的詳細(xì)內(nèi)容,更多關(guān)于C# 使用HttpClient上傳文件的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C# 三種方式實(shí)現(xiàn)Socket數(shù)據(jù)接收

    C# 三種方式實(shí)現(xiàn)Socket數(shù)據(jù)接收

    這篇文章主要給大家分享三種實(shí)現(xiàn)C# 實(shí)現(xiàn)Socket數(shù)據(jù)接收的方式,接下倆小編就來為大家詳細(xì)介紹吧,需要的朋友可以參考一下
    2021-10-10
  • C#實(shí)現(xiàn)rabbitmq 延遲隊(duì)列功能實(shí)例代碼

    C#實(shí)現(xiàn)rabbitmq 延遲隊(duì)列功能實(shí)例代碼

    本篇文章主要介紹了C#實(shí)現(xiàn)rabbitmq 延遲隊(duì)列功能實(shí)例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-04-04
  • c#進(jìn)度條 progressBar 使用方法的小例子

    c#進(jìn)度條 progressBar 使用方法的小例子

    1、創(chuàng)建進(jìn)度條窗口2、在其他窗口中調(diào)用方法ShowProcess(int percent,string message)
    2013-04-04
  • c#實(shí)現(xiàn)最簡潔的快速排序(你絕對可以看懂)

    c#實(shí)現(xiàn)最簡潔的快速排序(你絕對可以看懂)

    這篇文章主要給大家介紹了關(guān)于利用c#實(shí)現(xiàn)如何最簡潔的快速排序,實(shí)現(xiàn)的方法你絕對可以看懂,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用c#具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • c# 9.0新特性nint和Pattern matching的使用方法

    c# 9.0新特性nint和Pattern matching的使用方法

    這篇文章主要介紹了c# 9.0新特性nint和Pattern matching的使用方法,文中講解非常細(xì)致,幫助你更好的學(xué)習(xí)c# 9.0,有需求的朋友可以參考下
    2020-06-06
  • C#驗(yàn)證身份證的函數(shù)

    C#驗(yàn)證身份證的函數(shù)

    因做項(xiàng)目需要,參考網(wǎng)上資料寫了一個(gè)身份證驗(yàn)證的C#方法,本方法是在VS2005[C/S] 下寫的。前面2個(gè)是網(wǎng)友們的實(shí)現(xiàn)方法,第三個(gè)才是項(xiàng)目中使用的哦,小伙伴們參考下吧。
    2015-05-05
  • C#實(shí)現(xiàn)排列組合算法完整實(shí)例

    C#實(shí)現(xiàn)排列組合算法完整實(shí)例

    這篇文章主要介紹了C#實(shí)現(xiàn)排列組合算法的完整實(shí)例,文中實(shí)例主要展示了排列循環(huán)方法和排列堆棧方法,需要的朋友可以參考下
    2014-09-09
  • 詳細(xì)聊聊如何在C#循環(huán)中捕獲局部變量

    詳細(xì)聊聊如何在C#循環(huán)中捕獲局部變量

    這篇文章主要給大家介紹了關(guān)于如何在C#循環(huán)中捕獲局部變量的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2021-09-09
  • C#使用ZXing實(shí)現(xiàn)二維碼和條形碼的生成

    C#使用ZXing實(shí)現(xiàn)二維碼和條形碼的生成

    這篇文章主要為大家詳細(xì)介紹了C#如何使用ZXing實(shí)現(xiàn)二維碼和條形碼的生成與識(shí)別,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • C#自定義音樂播放器進(jìn)度條

    C#自定義音樂播放器進(jìn)度條

    這篇文章主要為大家詳細(xì)介紹了C#自定義音樂播放器進(jìn)度條效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07

最新評(píng)論

井陉县| 青浦区| 南靖县| 泽州县| 诸城市| 黔南| 陈巴尔虎旗| 连云港市| 漳平市| 冷水江市| 合川市| 田东县| 阳信县| 枞阳县| 化德县| 麻阳| 资中县| 遂平县| 大庆市| 清徐县| 崇信县| 崇左市| 镇平县| 永年县| 信阳市| 阿克苏市| 正阳县| 大同市| 桂东县| 四子王旗| 许昌县| 新源县| 南昌县| 瓮安县| 涞水县| 郓城县| 蒙自县| 鹤庆县| 关岭| 同江市| 蒙城县|