在我的控制器中,我使用下面的代码处理多部分表单数据:
string root = HttpContext.Current.Server.MapPath("~/App_Data");
if (!Directory.Exists(root))
{
throw new QLApplicationException("Error ...");
}
MultipartFormDataStreamProvider provider = new MultipartFormDataStreamProvider(root);
Task<HttpResponseMessage> task = Request.Content.ReadAsMultipartAsync(provider).ContinueWith<HttpResponseMessage>
这很好用,只是它只将表单数据保存到/ App_Data文件中。但我需要的是将数据放入程序中的字符串中,这样我就不必再从文件中读取它了。我怎样才能做到这一点?提前谢谢!
答案 0 :(得分:1)
为了澄清,MultipartFormDataStreamProvider
仅将所有上传的文件保存到文件系统中。如果您要访问表单值,可以provider.FormData
获取表单值。
如果您希望在内存中访问上传的文件而不将其保存为驱动器上的文件,则可以使用MultipartMemoryStreamProvider
将传入请求的所有上传部分读入内存。您可以通过访问提供程序上的HttpContents
属性来访问每个部分。