Здравствуйте, у меня в контроллере есть метод, который выглядит следующим образом.
[HttpPost]
[ValidateAntiForgeryToken]
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 filename = IGT.imagePath + "\\Components\\" + id.ToString() + ".jpg";
photo.SaveAs(filename);
c.Image_Url = IGT.baseUrl + "/Content/images/Components/" + id.ToString() + ".jpg";
db.SaveChanges();
}
else
{
if (Request["imageurl"] != null && Request["imageurl"].Length > 0)
{
// download this file
WebClient wc = new WebClient();
wc.DownloadFile(Request["imageurl"], IGT.imagePath + "\\Components\\" + id.ToString() + ".jpg");
c.Image_Url = IGT.baseUrl + "/Content/images/Components/" + id.ToString() + ".jpg";
db.SaveChanges();
}
}
HttpPostedFileBase reference = Request.Files["referencefile"];
if (reference != null && reference.ContentLength > 0)
{
// Upload the origin file and create a URL
var filename = IGT.contentPath + "\\uploads\\Comp-" + id.ToString() + "-" + System.IO.Path.GetFileName(reference.FileName);
reference.SaveAs(filename);
c.Reference_Url = IGT.baseUrl + "/Content/uploads/Comp-" + id.ToString() + "-" + System.IO.Path.GetFileName(reference.FileName);
db.SaveChanges();
}
return RedirectToAction("Edit", new { id = id });
}
Но в настоящее время, когда он достигает
photo.SaveAs(filename);
Я получаю ошибку сообщение
System.IO.DirectoryNotFoundException: «Не удалось найти часть пути» C: \ Users \ chris \ Source \ Repos \ inventory2.0 \ PIC_Program_1.0 \ Content \ images \ Components \ 498.jpg
Как создать блок try catch, чтобы, если папка не существовала в IIS Express, она создавалась?