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

时间:2017-07-08 06:56:36

标签: c# asp.net .net asp.net-web-api .net-core

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

        [HttpPost]
        public async Task<List<string>> Post(List<IFormFile> files)
        {
            long size = files.Sum(f => f.Length);
            List<string> result = new List<string>();

            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:访问路径   &#39; F:\ Documents HDD \ spec-backend \ Resources&#39;被拒绝

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

1 个答案:

答案 0 :(得分:10)

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

table.ui-jqgrid-btable