图像上传到文件夹mvc 5 C#

时间:2016-04-30 14:47:44

标签: image file-upload directory asp.net-mvc-5

当我尝试上传图片并将其保存在服务器的某个文件夹中时,我在System.UnauthorizedAccessException行中收到错误file.SaveAs(path)

查看:

控制器:

 public ActionResult LoadImage()
    {


        return View();
    }

    public ActionResult Upload(HttpPostedFileBase file)
    {
        //String path = Server.MapPath("~/img/" + file.FileName);
        if (file != null)
        {

            String pic = System.IO.Path.GetFileName(file.FileName);
            String path = System.IO.Path.Combine(Server.MapPath("~"), pic);
            file.SaveAs(path);
        }

        return RedirectToAction("index", "Home", null);

2 个答案:

答案 0 :(得分:1)

UnauthorizedAccessException意味着:

  • 来电者没有该文件夹所需的权限。
  • 该文件是正在使用的可执行文件。
  • Path指定了只读文件。

More Info on

解决方法:使用服务器文件夹而不是完整路径

创建图像文件夹在解决方案(或任何您选择的)中作为图像的存储空间..

    [HttpPost]
    public ActionResult Upload(HttpPostedFileBase file)
    {
        if (file != null)
        {
            //Get the file name 
            var pic = System.IO.Path.GetFileName(file.FileName);
            //Get the folder in the server
            var imagesDir = System.Web.HttpContext.Current.Server.MapPath("~/image/");
            var imgPath = imagesDir + pic;
            file.SaveAs((imgPath));
        }
        return RedirectToAction("index", "Home", null);
    }

干杯,

答案 1 :(得分:1)

此例外的可能原因是:

  • 未授予您上传图片的文件夹的权限。 (如果没有给出,请提供对文件夹的读写权限)
  • 您要上传的文件夹是只读的。
  • 该文件是可执行文件,可能正在使用中。

希望这有帮助。