2016-04-30 3 views
1

Когда я пытаюсь загрузить изображение и сохранить его в определенной папке сервера, я получаю ошибку System.UnauthorizedAccessException в строке file.SaveAs(path).Загрузка изображения в папку mvc 5 C#

Вид:

Контроллер:

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); 
+0

Пожалуйста, отредактируйте ваш вопрос, чтобы включить весь код ** в качестве текста ** в самом вопросе. –

ответ

0

UnauthorizedAccessException означает:

  • Вызывающий не имеет необходимого разрешения на папку.
  • Файл является исполняемым файлом, который используется.
  • Путь задает файл только для чтения.

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); 
    } 

Cheers,

1

Возможные причины этого исключения:

  • Разрешение не предоставлено в папку, в которую вы загружаете изображения. (Предоставьте разрешение на чтение для записи в папку, если не указано)
  • Папка, в которую вы загружаете, является только для чтения.
  • Файл является исполняемым, который может быть использован.

Надеюсь, это поможет.

Смежные вопросы