MVC 4 ajax上传文件.copyto打开文件

时间:2013-02-19 18:29:43

标签: asp.net-mvc c#-4.0 filestream

我正在使用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();

1 个答案:

答案 0 :(得分:1)

在使用语句中包装它并且不会锁定文件

using (var output = File.OpenWrite(diskPath + newfileName))
                {
                    using (var input = fileStream)
                    {
                        input.CopyTo(output);
                    }
                }