Следующий код используется для создания новой папки в каталоге проекта:
[HttpPost]
[ActionName("Create")]
public ActionResult Create(Item model)
{
string s = model.Category.Name;
if (ModelState.IsValid && model.imageUpload != null && model.imageUpload.ContentLength > 0)
{
string initialPath = string.Format("~/Images/Products/" + s + "/");
var virtualPath = Path.Combine(initialPath, model.imageUpload.FileName);
var d = Directory.CreateDirectory(string.Format(Server.MapPath(initialPath)));
var extension = Path.GetExtension(model.imageUpload.FileName);
var validImageTypes = new[] { ".gif", ".GIF", ".jpg", ".JPG", ".jpeg", ".JPEG", ".pjpeg", ".PJPEG", ".png", ".PNG" };
if (!validImageTypes.Contains(extension))
{
ModelState.AddModelError("imageUpload", "Please add a valid format picture (i.e., a .gif,.jpg or .png image");
return View();
}
model.imageUpload.SaveAs(Server.MapPath(virtualPath));
model.imageUrl = virtualPath;
db.Items.Add(model);
db.SaveChanges();
TempData["name"] = model.ItemName;
return RedirectToAction("Create");
}
model.Categories = new SelectList(db.Categories.ToList(), "Name", "Name");
model.Brands = new SelectList(db.Brands.ToList(), "Name", "Name");
return View(model);
}
Код работает как блеск и создает нужную папку в нужном каталоге. Проблема, возникающая в настоящее время, заключается в том, что при чтении из вновь созданной папки Visual Studio не может выполнить чтение из папки, и браузер выдает ошибку 404 (файл не найден) при чтении из нее.
Это связано с разрешениями? Я проверил вновь созданные разрешения для папок, и для них установлено «Полный доступ» для «Все».
Может кто-нибудь, пожалуйста, руководство?