目前我常用的方式有兩種,這次先介紹第一種,利用formData進行傳遞:
使用formData進行傳遞,好處是可以傳遞文件和圖片,而且使用起來也十分方便。
在control控制界面中,我把接收圖片及另存爲的代碼也附上。
下面是js代碼
function doUpload() {
var formData = new FormData($("#form1")[0]); // 要求使用的html對象
$.ajax({
url: 'http://localhost:6751/Home/AjaxAddUser',
type: 'POST',
data: formData,
async: true,
// 下面三個參數要指定,如果不指定,會報一個JQuery的錯誤
cache: false,
contentType: false,
processData: false,
success: function (msg) {
alert(msg);
window.location.href = '/Home/Index';
},
error: function (msg) {
alert(msg);
}
});
}
控制器的接收代碼
[HttpPost]
public string AjaxAddUser(FormCollection form, HttpPostedFileBase File1)
{
string name = form["name"];
int age = int.Parse(form["age"]);
DateTime date = System.DateTime.Now;
var fileName = Path.Combine(Request.MapPath("~/Upload"), Path.GetFileName(File1.FileName));
File1.SaveAs(fileName);
string path = "/Upload/" + Path.GetFileName(File1.FileName);
UserList u = new UserList();
u.name = name;
u.age = age;
u.jointime = date;
u.Url = path;
//添加,這個只是在內存上操作
db.UserList.AddObject(u);
//保存到數據庫
int ac = 0;
string msg;
ac = db.SaveChanges();
if (ac > 0)
{
msg = "ok";
}
else
{
msg = "no";
}
//return Json(new { options = msg }, JsonRequestBehavior.AllowGet);
return msg;
}
也可以利用formdata先實現圖片的上傳,然後在頁面中直接預覽文件,這樣用戶在上傳之後就可以看到自己上傳的圖片效果,用戶體驗更好。具體代碼很簡單,我就不舉例了。