【发布时间】:2017-02-16 15:27:05
【问题描述】:
我正在使用 MultipartFormDataContent 将文件上传到休息 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
它有两种添加方法:
- 添加(HttpContent,字符串)
- 添加(HttpContent,字符串,字符串)
但是两者都没有列出描述,并且在深入研究方法本身时,参数仅被描述(同样没有描述)为:
- HttpContent 内容,字符串名称
- HttpContent 内容、字符串名称、字符串文件名
所以,我在这方面的具体问题是:
- 什么是“name”参数? (我设置为“文件”的那个)?
- 这需要是文字字符串“文件”还是可以是其他内容?
- 如何使用?
【问题讨论】:
-
我根本不使用 Add。看到这个答案stackoverflow.com/questions/42212406/…
-
@Fran 谢谢。看来您正在使用类似的模式,其中(在与您的surveyId相同的数组中)您添加:(1)byteArrayContent,(2)文字字符串“file”,(3)和文件名.我的问题仍然是关于这个中间参数:如果正在上传文件,它必须是文字字符串“file”吗?这个参数还有什么用途?
-
写入内容配置头。看起来您可以将其关闭以进行文件上传。 name 看起来与输入名称相对应。 developer.mozilla.org/en-US/docs/Web/HTTP/Headers/…
-
@Fran - 看起来不错,谢谢你解决这个问题!
标签: c# file-upload httpclient add multipartform-data