使用IFormFile拒绝ASP.Net对路径的核心访问

只需编写一个简单的ASP.NET Core WebAPI,并在使用接受IFormFiles的简单POST端点时:

[HttpPost] public async Task<List> Post(List files) { long size = files.Sum(f => f.Length); List result = new List(); Console.WriteLine(files.Count); foreach (var f in files) { if (f.Length > 0) { Directory.CreateDirectory("Resources"); using (var stream = new FileStream("Resources", FileMode.Create)) { await f.CopyToAsync(stream); result.Add(f.FileName); } } } return result; } 

我收到此错误:

System.UnauthorizedAccessException:拒绝访问路径’F:\ Documents HDD \ spec-backend \ Resources’

我已经调查了它,显然它与我的目录只读取有关,但我无法弄清楚如何更改它,即使这样,目录也是由我的ASP.NET控制器创建的。

答案最后是FileStream对象需要路径中文件的名称,而不仅仅是目录。

 using (var stream = new FileStream(Path.Combine("Resources", f.FileName), FileMode.Create)) { await f.CopyToAsync(stream); result.Add(f.FileName); }