C# Directory.CreateDirectory正在创建Visual Studio无法访问的文件夹
以下代码用于在项目目录中创建新文件夹:C# Directory.CreateDirectory正在创建Visual Studio无法访问的文件夹,c#,asp.net-mvc,C#,Asp.net Mvc,以下代码用于在项目目录中创建新文件夹: [HttpPost] [ActionName("Create")] public ActionResult Create(Item model) { string s = model.Category.Name; if (ModelState.IsValid && model.imageUpload != null && model.imageUpload.ContentLength > 0)
[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(未找到文件)错误
这与权限有关吗?我检查了新创建的文件夹权限,这些权限设置为“所有人”的“完全访问”
有人能给我引路吗 您可能需要为该路径添加一个静态文件处理程序-如果它位于web应用程序的路径下,那么IIS将不会提供静态文件,因为这存在安全风险
用读取并返回文件的操作替换文件的URL,或者在web.config中为该路径添加静态文件处理程序。用于从文件夹读取的邮政编码?我打赌你的路径是错误的……如果路径正确,visual studio可以读取该路径。@Milney-以上代码仅用于创建文件夹。我正在从
视图中的GET方法读入文件夹。你刷新过你的页面吗?@Dad。发生这种情况是因为浏览器从缓存中提供了一个页面,所以当时在那里找不到文件。