c# - 保存文件时出现 UnauthorizedAccessException,但可以创建目录

标签 c# model-view-controller asp.net-mvc-5

我正在尝试将文件保存到磁盘,但收到 UnauthorizedAccessException。 该错误表明我必须获得该文件夹的正确权限,并且我已经尝试了我能找到的所有可能的用户,但它不起作用。

尝试了以下用户

  • 网络
  • 网络服务
  • IUSR
  • IUSR_[计算机名]

并在不工作的情况下获得完整的权利。

我发现真正奇怪的是,我在尝试保存文件之前创建了一个目录,并且效果很好,当尝试将文件保存到该新目录时,我收到了 UnautorhizedAccessException。

代码如下:

    [HttpPost]
    public ActionResult Images(HttpPostedFileBase file, string boatId)
    {
        if (file.ContentLength > 0)
        {
            var fileName = Path.GetFileName(file.FileName);
            var path = Path.Combine(Server.MapPath("~/Content/Images/" + boatId));
            Directory.CreateDirectory(path);
            file.SaveAs(path);

        }
        return View($"Filen på {boatId} har laddats upp");
    }

对我缺少的东西有什么想法吗?

最佳答案

原来我想要做的是保存文件夹而不是文件,我忘记将文件名与路径组合起来。

将保存部分更改为以下内容:

file.SaveAs(Path.Combine(path, fileName));

这为我解决了整个问题。

关于c# - 保存文件时出现 UnauthorizedAccessException,但可以创建目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44949026/

相关文章:

c# - 使用 Nhibernate Criteria Api 查询集合?

c# - 无法匹配字符串中的字母和字母数字词

asp.net-mvc-5 - 在 View 中使用 User.IsInRole()

swift - 如何在 Swift 中尊重 MVC?

java - Eclipse/Java 等同于 Microsoft ASP.NET 模型 View 控制框架

c# - Web API 2.0 IHttpActionResult 缓存

debugging - Owin with MVC 5 - 重定向循环 - 如何调试?

c# - 如何在 Global.aspx 的 Application_Start 中获取完整的主机名+端口号?

c# - .NET 对象最灵活的序列化是什么,但实现起来很简单?

jquery - ASP.NET MVC 授权属性启动模式?