2017-08-09 86 views
-2

我的文件上传不起作用。我想上传图片。 我已经在我的视图中创建了输入类型文件。 这里是我的代码 -我无法使用json在asp.net mvc5中保存图像

[HttpPost] 
public ActionResult AddOrEdit(tbl_employee emp) 
{ 
    var getGender = db.tbl_gender.ToList(); 
    SelectList list = new SelectList(getGender, "gender_type", "gender_type", emp); 
    ViewBag.genderList = list; 

    if (emp.employee_image != null) 
    { 
     string fileName = Path.GetFileNameWithoutExtension(emp.imageFile.FileName); 
     string extension = Path.GetExtension(emp.imageFile.FileName); 
     fileName = fileName + extension; 
     emp.employee_image = "~/Images/Employee/" + fileName; 
     fileName = Path.Combine(Server.MapPath("~/Images/Employee/"), fileName); 
     emp.imageFile.SaveAs(fileName); 
    } 
    if (emp.employee_id == 0) 
    { 
     db.tbl_employee.Add(emp); 
     db.SaveChanges(); 
     return Json(new { success = true, message = "Saved Successfully" }, JsonRequestBehavior.AllowGet); 
    } 
    else 
    { 
     db.Entry(emp).State = EntityState.Modified; 
     db.SaveChanges(); 
     return Json(new { success = true, message = "Updated Successfully" }, JsonRequestBehavior.AllowGet); 
    }  
} 

这里是我的tbl_employee.cs

public long employee_id { get; set; } 
public string employee_image { get; set; } 
public HttpPostedFileBase imageFile { get; set; } 

这里有什么问题?

+3

不清楚你在这里问什么。你的数据模型不能包含'HttpPostedFileBase'属性(没有数据库等价物) - 你将文件的路径存储在数据库中。 –

+0

是的,我的employee_image属性是保存路径的属性。 –

+1

你的问题是什么?你没有提到这一点。 –

回答

0

在你的函数中包含HttpPostedFileBase用于获取上传文件在你的AddOrEdit函数中。

public ActionResult AddOrEdit(tbl_employee emp, HttpPostedFileBase Image) 
{ 

} 

欲了解更多解释,请包括view与您的问题。 确保您的视图包含图片上传代码。

@using (Html.BeginForm("AddOrEdit", "Employee", null, FormMethod.Post, new { enctype = "multipart/form-data" })) 
+0

我想将imageFile位置保存在我的数据库中,并在索引视图中检索图像。我正在使用jquery和ajax进行POST方法。我认为这是我的图片没有通过正常方式上传的原因。 –

+0

你在控制器中获得上传文件的价值吗? –