我正在使用MVC 4,C#4和ajax发布带有文件输入的表单。一切正常,除了我可以看到文件被写入服务器,但它似乎被锁定,直到我手动刷新页面。所以好像有什么东西锁定它,即在写入期间我没有关闭某些东西等?
在我的控制器中,我捕获文件InputStream并将其传递给服务层。
控制器捕获代码:
if (Request.Files.Count > 0)
{
file = Request.Files[0]; //Uploaded file
fileName = file.FileName;
mimeType = file.ContentType;
fileContent = file.InputStream;
}
服务层代码,其中fileStream的类型为Stream,并从控制器的file.InputStream传入。
//Write file to disk path
fileStream.CopyTo(File.OpenWrite(diskPath + newfileName));
fileStream.Flush();
fileStream.Close();
答案 0 :(得分:1)
在使用语句中包装它并且不会锁定文件
using (var output = File.OpenWrite(diskPath + newfileName))
{
using (var input = fileStream)
{
input.CopyTo(output);
}
}