HttpPostedFile.SaveAs拒绝访问

时间:2014-02-20 22:26:17

标签: c# asp.net-mvc file-upload file-permissions

我正在尝试保存从我的页面上传的文件,但是我收到了拒绝访问错误:

public void SaveFile(Item item, HttpPostedFileBase file)
    {
        var dir = string.Format(@"{0}\NSN\{1}", ConfigurationManager.AppSettings["ContentLocation"].ToString(), item.Id.ToString());

        if (!System.IO.Directory.Exists(dir))
            System.IO.Directory.CreateDirectory(dir);

        Array.ForEach(Directory.GetFiles(dir), File.Delete);

        file.SaveAs(dir);
    }

我从visual studio的本地主机运行此站点,因此不涉及任何应用程序池。我已经给网络服务(和所有人作为测试)完全控制了文件夹及其子文件夹。奇怪的是,如果需要,它会创建文件夹,并删除现有文件夹中的任何文件。只有当我调用SaveAs函数时才会收到错误。

2 个答案:

答案 0 :(得分:3)

您使用目录路径调用file.SaveAs而不是文件路径

答案 1 :(得分:2)

在这里,尝试一下:

string saveAsPath = Path.Combine(dir, file);
file.SaveAs(saveAsPath);

file.SaveAs(dir)替换为上述内容。