【发布时间】:2014-04-19 20:04:34
【问题描述】:
我正在开发一个 MVC ApiController 来管理上传文件的序列化。
我用这个方法访问上传文件的内容:
public class UploadController : ApiController
{
[System.Web.Http.HttpPost]
public UploadOutcome UploadFile()
{
HttpContent selectFile = Request.Content;
UploadOutcome res = null;
//implements the serialization logic
SerializerManager serializer = new SerializerManager();
try
{
string content = selectFile.ReadAsStringAsync().Result;
res = serializer.Serialize(content);
}
catch(Exception ex)
{
throw ex;
}
return res;
}
}
Request.Content.ReadAsStringAsync().Result 是一种广泛使用的解决方案。请参阅here 和here。
不幸的是,获得的content字符串包含HttpRequestMessage的内容和标题:
文件内容
920-006099 ;84;65;07/03/2014 00:00;13/03/2014 23:59;10;BZ;1
RL60GQERS1/XEF;1499;1024;07/03/2014 00:00;13/03/2014 23:59;5;KV;1
内容字符串
-----------------------------11414419513108
Content-Disposition: form-data; name="selectFile"; filename="feed.csv"
Content-Type: text/csv
920-006099 ;84;65;07/03/2014 00:00;13/03/2014 23:59;10;BZ;1
RL60GQERS1/XEF;1499;1024;07/03/2014 00:00;13/03/2014 23:59;5;KV;1
-----------------------------11414419513108--
问题
有没有办法摆脱标题?换句话说,我想获取没有标题的内容。
【问题讨论】:
-
您可以使用
HttpPostedFile作为您方法的参数。你从Content得到的实际上是身体。它只是碰巧在内容中重复了标题以及文件。 -
@Kenneth,不适用于 ADC 显然正在使用的 Web API。
标签: c# asp.net-mvc-4 file-upload