繁体   English   中英

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

[英]ASP.Net Core Access to the Path is Denied with IFormFile

只需编写一个简单的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:拒绝访问路径'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);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM