我试图将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);
}