2014-10-28 3 views
0

Я загружаю изображение в папку изображений. он работает отлично. Но на самом деле я хочу искать имя папки (у меня есть имя папки), если не найден, создайте эту папку и дайте ей это имя. Как это могло случиться?Server.MapPath проверить папку и создать

это то, что я сделал до сих пор:

string ImageName = System.IO.Path.GetFileName(file.FileName); 
string physicalPath = Server.MapPath("~/images/" + ImageName); 

вместо изображений я должен иметь FOLDERNAME.

полный вид:

@{ 
ViewBag.Title = "Index"; 
} 


@using (Html.BeginForm("FileUpload", "datum", FormMethod.Post, 
       new { enctype = "multipart/form-data" })) 
{ 
<div> 
    category<br /> 
    @Html.DropDownList("category", ViewBag.Roles as SelectList) 
<br/> 
    description<br /> 
    @Html.TextBox("description") <br /> 
    Image<br /> 
    <input type="File" name="file" id="file" value="Choose File" /> 
    <input type="submit" value="Upload" class="submit" /> 
</div> 
} 

полный контроллер

public class datumController : Controller 
{ 
    DataEntry db = new DataEntry(); 
    public ActionResult Index() 
    { 
     var data = from p in db.categories 

        select p.categoryName; 

     SelectList list = new SelectList(data); 
     ViewBag.Roles = list; 
     return View(); 
    } 
    public ActionResult create() 
    { 
     return View(); 
    } 
    [HttpPost] 
    public ActionResult FileUpload(HttpPostedFileBase file) 
    { 

     if (file != null) 
     { 

      string ImageName = System.IO.Path.GetFileName(file.FileName); 
      string physicalPath = Server.MapPath("~/images/" + ImageName); 



      // save image in folder 
      file.SaveAs(physicalPath); 

      //save new record in database 
      datum newRecord = new datum(); 
      newRecord.category = Request.Form["category"]; 
      newRecord.description = Request.Form["description"]; 
      newRecord.imagePath = ImageName; 
      db.data.Add(newRecord); 
      db.SaveChanges(); 


     } 
     //Display records 
     return RedirectToAction("Display"); 
    } 

, так что я должен получать выбранное значение из выпадающего списка и прикрепить его к физическому пути, проверьте, существует ли папка, если нет, тогда создайте папку и загрузите изображение в эту папку

ответ

0

Попробуйте, пожалуйста, ниже ...

string subPath ="ImagesPath"; // your code goes here 

    bool exists = System.IO.Directory.Exists(Server.MapPath(subPath)); 

    if(!exists) 
    System.IO.Directory.CreateDirectory(Server.MapPath(subPath)); 

Для получения дополнительной информации, пожалуйста, обратитесь к ссылке ниже. If a folder does not exist, create it

+0

подпуть должен нести выбранное значение из DropDownList вы можете мне помочь с этим? – mohammad

+0

Как вы получаете значение подпункта с страницы пользовательского интерфейса? – Vignesh

+0

это то, что я прошу: D, чтобы получить значение subpath из выбранного выпадающего списка item.I будет редактировать мой код, чтобы включить представление и контроллер – mohammad

-1
if (file != null && file.ContentLength > 0) 
{ 
    string path = Path.Combine(Server.MapPath("~/Images"), Path.GetFileName(file.FileName)); 
    tbl_MixEmp.EmpImage = Path.Combine("~/Images", file.FileName); 
    file.SaveAs(path); 
} 
Смежные вопросы