读取多部分表单数据而不将文件保存到磁盘?

时间:2014-10-17 14:50:35

标签: c# asp.net asp.net-web-api

我有一个看起来简化的表单,如下所示:

<form id="image-form" enctype="multipart/form-data">
  <input type="text" name="imageEntryName" />                                    
  <input type="file" name="imageEntry" />
  <input type="text" name="imageEntryAltText" />
  <input type="submit" value="SEND INN" class="btn-ok" />
</form>

这是发布到此操作:

[HttpPost]
[Route("~/api/Exhibition/SubmitImageEntry")]
public async Task<HttpResponseMessage> SubmitImageEntry()
{
  if (!Request.Content.IsMimeMultipartContent())
  {
    throw new HttpResponseException(HttpStatusCode.BadRequest);
  }

  var provider = new MultipartFormDataStreamProvider("C:/test");
  var data = await Request.Content.ReadAsMultipartAsync(provider);

  return new HttpResponseMessage(HttpStatusCode.OK);
}

这很有效。我得到了发布的数据。但如果没有MultipartFormDataStreamProvider保存文件到C:/test,这是否可行?我可以,我可以将数据保存在内存中,直到操作完成。

编辑:使用MultipartFormDataStreamProvider我获得.FormData["key"]选项,这就是我想要的。

1 个答案:

答案 0 :(得分:1)