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

rus*_*ert 5 c# file-upload multipartform-data add httpclient

我正在使用 MultipartFormDataContent 将文件上传到休息 API。这运行良好,但我的问题侧重于使用 Add(...) 方法来包含文件内容的正确方法。目前我正在这样做:

string fileName = "foobar.txt";
MultipartFormDataContent formContent = new MultipartFormDataContent();
ByteArrayContent byteArray = ...;
formContent.Add(byteArray, "file", fileName);
...
Run Code Online (Sandbox Code Playgroud)

再次,这有效 - 我试图了解 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 内容、字符串名称、字符串文件名

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

  • ' name ' 参数是什么?(我设置为“文件”的那个)?
  • 这需要是文字字符串“文件”还是其他东西?
  • 它是如何使用的?

Fra*_*ran 5

它被写入内容配置标头中。看起来您可以将其保留以进行文件上传。名称看起来与输入名称相对应。

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


小智 5

根据具有三个参数的方法,以下是每个参数的简要说明。

public void Add(HttpContent content, string name, string fileName);
Run Code Online (Sandbox Code Playgroud)

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

name - 该内容的名称。如果 Web API 必须搜索特定名称,这一点至关重要。

文件名- 将添加到消息的内容处置标头的名称。Web API 将使用它来保存文件。