【问题标题】:MVC 4 ajax upload file .copyto leaving file openMVC 4 ajax上传文件.copyto让文件保持打开状态
【发布时间】:2013-02-19 18:29:43
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    将其包装在 using 语句中有效且不会锁定文件

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-23
      • 2012-07-27
      相关资源
      最近更新 更多