C# 将MemoryStream转换为字节[]-无法访问封闭流
我有一个文件上传可以上传异步文件C# 将MemoryStream转换为字节[]-无法访问封闭流,c#,asp.net-mvc,stream,C#,Asp.net Mvc,Stream,我有一个文件上传可以上传异步文件 $("#files").kendoUpload({ async: { saveUrl: "AddFile", autoUpload: true } }); 在AddFile操作中,我将发布的文件存储在tempData中 public ActionResult AddFile(IEnumerable<HttpPostedF
$("#files").kendoUpload({
async: {
saveUrl: "AddFile",
autoUpload: true
}
});
在AddFile操作中,我将发布的文件存储在tempData中
public ActionResult AddFile(IEnumerable<HttpPostedFileBase> files)
{
TempData["PostedFile"] = files;
// Return an empty string to signify success
return Content("");
}
public ActionResult AddFile(IEnumerable文件)
{
TempData[“PostedFile”]=文件;
//返回一个空字符串表示成功
返回内容(“”);
}
在Create操作中,当我想将postedfile Inputdtream转换为byte[]时,我有一个异常
无法访问已关闭的文件
if((TempData[“PostedFile”]作为IEnumerable)!=null)
{
var postedfile=(TempData[“postedfile”]作为IEnumerable);
MemoryStream target=新的MemoryStream();
postedfile.InputStream.CopyTo(目标);//此行有异常
字节[]数据=target.ToArray();
}
更新
当我上传一个大小为80Kb的文件时,我的代码工作了…当我的文件大小为500k时,mycode有异常 这是MVC引擎的正确行为。为什么不在AddFile操作中将字节数组存储在TempData中?检查我的更新问题
if ((TempData["PostedFile"] as IEnumerable<HttpPostedFileBase>)!= null)
{
var postedfile =(TempData["PostedFile"] as IEnumerable<HttpPostedFileBase>).ElementAt(0);
MemoryStream target = new MemoryStream();
postedfile.InputStream.CopyTo(target);//This Line Has exception
byte[] data = target.ToArray();
}