c# MultipartFormDataContent 添加方法(如何正确添加文件)

c# MultipartFormDataContent Add methods (how to properly add a file)

我正在使用 MultipartFormDataContent 将文件上传到 rest API。这很好用,但我的问题集中在使用 Add(...) 方法包含文件内容的正确方法上。目前我正在这样做:

string fileName = "foobar.txt";
MultipartFormDataContent formContent = new MultipartFormDataContent();
ByteArrayContent byteArray = ...;
formContent.Add(byteArray, "file", fileName);
...

同样,这有效 - 我正在尝试了解 Add(...) 方法的参数。在 MSDN 文档中:https://msdn.microsoft.com/en-us/library/system.net.http.multipartformdatacontent(v=vs.118).aspx

它有两种添加方法:

  1. 添加(HttpContent,字符串)
  2. 添加(HttpContent、字符串、字符串)

然而,两者都没有列出描述,并且在深入研究方法本身时,参数仅被描述(同样没有描述)为:

  1. HttpContent内容,字符串名称
  2. HttpContent内容,字符串名称,字符串文件名

所以,我在这方面的具体问题是:

写入内容配置header。看起来您可以将其关闭以进行文件上传。名称看起来与输入的名称相对应。

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition

按照三个参数的方法,下面对每个参数做一个简单的说明。

public void Add(HttpContent content, string name, string fileName);

content - 需要发送的内容(例如:数组、文件)。

name - 该内容的名称。如果网络 API 必须搜索特定名称,这是必不可少的。

文件名 - 将添加到消息的 content-disposition header 中的名称。 Web API 将使用它来保存文件。