作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用的是 Visual Studio 2012 Express 附带的 MVC 版本。 (微软.AspNet.Mvc.4.0.20710.0)
我认为这是 RTM 版本。
我在网上找到了很多例子,它们都使用了这个代码:
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)
{
return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, t.Exception);
}
// This illustrates how to get the file names.
foreach (MultipartFileData file in provider.FileData)
{
Trace.WriteLine(file.Headers.ContentDisposition.FileName);
Trace.WriteLine("Server file path: " + file.LocalFileName);
}
return Request.CreateResponse(HttpStatusCode.OK);
});
return task;
}
但是这段代码总是以 continueWith 结束,其中 t.IsFaulted == true
。异常内容如下:
Unexpected end of MIME multipart stream. MIME multipart message is not complete.
这是我的客户表格。没什么花哨的,我想为 ajax 上传做 jquery 表单插件,但我什至无法让这种方式工作。
<form name="uploadForm" method="post" enctype="multipart/form-data" action="api/upload" >
<input type="file" />
<input type="submit" value="Upload" />
</form>
我了解到这是由解析器在每条消息末尾期待/CR/LF 引起的,并且该错误已于 6 月修复。
我不明白的是,如果它真的被修复了,为什么它不包含在这个版本的 MVC 4 中?为什么互联网上有这么多示例声称这段代码可以工作,但在这个版本的 MVC 4 中却不起作用?
最佳答案
您的文件input
上缺少name
属性。
<form name="uploadForm" method="post" enctype="multipart/form-data" action="api/upload" >
<input name="myFile" type="file" />
<input type="submit" value="Upload" />
</form>
没有它的输入将不会被浏览器提交。因此您的表单数据为空,导致 IsFaulted
被断言。
关于.net-4.0 - 上传文件 MVC 4 Web API .NET 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13074791/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!