c#,写HTTP内容到FileStream的问题,不能访问一个关闭的文件

本文关键字:一个 文件 访问 问题 HTTP FileStream 不能 | 更新日期: 2023-09-27 17:53:33

我正试图将HTTP内容写入FileStream,并且我得到"无法访问关闭文件"的错误,在我做等待CopytoAsync(流)的行。如果我删除"await",它将继续操作,没有任何异常,但是写入的文件大小为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);
                }
    }

c#,写HTTP内容到FileStream的问题,不能访问一个关闭的文件

我解决了这个问题,通过使用FileData属性而不是MultipartFormDataStreamProvider中的Content。

另外,我不再使用CopyToAsync,而是使用正常的文件。动一动,对我来说效果很好。

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