在 ASP.NET 上找到的教程中,实现了一个 Web API 控制器方法,用于执行异步文件上传,代码如下:
public Task<HttpResponseMessage> PostFormData()
{
// Check if the request contains multipart/form-data.
if (!Request.Content.IsMimeMultipartContent())
{
throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
}
string root = HttpContext.Current.Server.MapPath("~/App_Data");
var provider = new MultipartFormDataStreamProvider(root);
// Read the form data and return an async task.
var task = Request.Content.ReadAsMultipartAsync(provider).
ContinueWith<HttpResponseMessage>(t =>
{
if (t.IsFaulted || t.IsCanceled)
{
Request.CreateErrorResponse(HttpStatusCode.InternalServerError, t.Exception);
}
return Request.CreateResponse(HttpStatusCode.OK);
});
return task;
}
通过标准的multipart HTML表单上传文件完全正常。但是,当另一个开发者尝试通过Flex的FileReference类构建的multipart表单上传文件时,会抛出错误:
意外的MIME多部分流结束。 MIME多部分消息不完整。
我不知道问题是出在Web API还是Flex上。我找到了一些相关的解决方法,但没有任何效果(使用ASP.Net Web API进行多部分表单POST),最近发现了这个(Webapi上传时出现“MIME多部分流。 MIME多部分消息不完整”错误)。如果第二个链接是正确的,那么有人知道它是否已经在通过Nuget可用的当前版本的Web API中发布了吗?该讨论是在5月份进行的,Nuget的最新版本是8月份,因此我认为此修复已经部署,并且不是我的问题的根本原因。
<input name="FailsWithoutThis" type="file" />
。太蠢了。 - user1228