【发布时间】:2014-06-05 16:26:48
【问题描述】:
我正在使用此代码处理文件上传到 web api:
[HttpPost]
public async Task<IHttpActionResult> Post(string provider)
{
if (!Request.Content.IsMimeMultipartContent())
throw new Exception();
var streamProvider = new MultipartMemoryStreamProvider();
await Request.Content.ReadAsMultipartAsync(streamProvider); // FAILS HERE
foreach (var file in streamProvider.Contents)
{
var imageFilename = file.Headers.ContentDisposition.FileName.Trim('\"');
var imageStream = await file.ReadAsStreamAsync();
}
}
但是这里会报错:await Request.Content.ReadAsMultipartAsync(streamProvider);
错误是:读取 MIME 多部分正文部分时出错。 内部异常是:
{"Cannot access a disposed object."}
关于为什么会出现此错误的任何想法?
【问题讨论】:
-
最好添加 try catch 块
-
@user3629247 他已经有了例外,为什么他需要一个trycatch?如果他忽略了这个问题,他就不会在这里发帖
-
@user441365 您是否使用了正确的 Content-Type 标头值?又名 Content-Type: multipart/form-data
-
如果我们将方法包装在 try-catch 块中,我们可以优雅地处理作为方法一部分发生的任何错误。对于这种情况,他已经捕获了异常
-
你在使用
enctype属性吗?
标签: .net asp.net-mvc asp.net-web-api