c# - 保存到文件路径时访问被拒绝

标签 c# asp.net-mvc iis error-handling

我有一个看起来像这样的上传方法

public ActionResult UploadImage(int? id)
{
    if (id == null)
        return HttpNotFound();

    Component c = db.Components.Find((int)id);
    HttpPostedFileBase photo = Request.Files["image"];

    if (photo != null && photo.ContentLength > 0)
    {
        var file = IGT.imagePath + "\\Components\\";

        //bool exists = System.IO.Directory.Exists(Server.MapPath(file));

        //if (!exists)
        //   System.IO.Directory.CreateDirectory(Server.MapPath(file));

        var filename = file + id.ToString() + ".jpg";

        if (!System.IO.Directory.Exists(file))
        {
            System.IO.Directory.CreateDirectory(file);
        }

        photo.SaveAs(filename);
        c.Image_Url = IGT.baseUrl + "/Content/images/Components/" + id.ToString() +".jpg";
        db.SaveChanges();
    }

但是我在photo.SaveAs(filename);收到错误消息说

System.UnauthorizedAccessException: 'Access to the path 'C:\Users\chris\Source\Repos\inventory2.0\PIC_Program_1.0\Content\images\Components\498.jpg' is denied.'



为什么会这样,我该如何解决?

最佳答案

无论执行该代码的用户是谁,都没有写该文件路径的权限。如果转到C:\ Users \ chris \ Source \ Repos \ inventory2.0 \ PIC_Program_1.0 \ Content \ images \ Components,右键单击,属性,“安全性”选项卡,您将看到具有权限的用户以及这些权限是什么。您可以在此处添加或编辑用户权限。

关于c# - 保存到文件路径时访问被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61195724/

相关文章:

c# - 反射:将反射类型转换为泛型,类型为字符串并对其进行迭代

c# - OnActivityResult(蓝牙)中的 Intent 数据为空

c# - 突出显示字符串中的搜索词

c# - 无法更新,因为没有主键

iis - 将ASP.NET Web API部署到IIS服务器

iis - IIS Windows Server 2012R2 的 DotNetCore 1.0.1 WindowsHosting 安装失败

c# - ASP.NET MVC 中具有不同属性的部分 Controller

c# - 使用 Ajax 发布的 MVC 中的文件附件

asp.net-mvc - 列表回发时绑定(bind)困难

asp.net - 无法提交配置更改,因为文件在磁盘上已更改