编程语言
首页 > 编程语言> > C#,将HTTP内容写入FileStream的问题,无法访问关闭的文件

C#,将HTTP内容写入FileStream的问题,无法访问关闭的文件

作者:互联网

我试图将HTTP内容写入FileStream,并且在等待CopytoAsync(stream)的行中收到“无法访问关闭文件”错误.如果删除“等待”,它将继续操作,没有任何异常,但是写入的文件大小为0KB.知道我在哪里犯错吗?

   var provider = new MultipartFormDataStreamProvider(tempdir);
     await Request.Content.ReadAsMultipartAsync(provider);
            foreach (var content in provider.Contents)
    {
         using (var stream = new FileStream(serverPath, FileMode.Create, FileAccess.ReadWrite))
                {
                    await content.CopyToAsync(stream);
                }
    }

解决方法:

我通过使用FileData属性而不是MultipartFormDataStreamProvider中的Content解决了此问题.

另外,我不再使用CopyToAsync,而是使用普通的File.Move,它对我来说很完美.

  var provider = new MultipartFormDataStreamProvider(tempdir);
  await Request.Content.ReadAsMultipartAsync(provider);
        foreach (var content in provider.FileData)
          {
                File.Move(content.LocalFileName, serverPath);
          }

标签:multithreading,multipartform-data,filestream,c
来源: https://codeday.me/bug/20191026/1940152.html