我正在尝试将HTTP内容写入FileStream,并且在 await 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);
}
}
答案 0 :(得分:4)
我通过在MultipartFormDataStreamProvider中使用FileData属性而不是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);
}