Wednesday, June 7, 2017

Upload Image with MVC, Ajax

 var GetFromData = function(){  
      var obj = new FormData();  
      obj.append("fileUpload", $form.find("input[name='InportFile']")[0].files[0]);  
      return obj;  
 }  
 var AjaxPostFormData = function (option, fnSuccess, fnError) {  
      $.ajax({  
           url: option.Url,  
           type: 'Post',  
           data: option.Data,  
           enctype: 'multipart/form-data',  
           cache: false,  
           contentType: false,  
           processData: false,  
           beforeSend: function () {  
                base.RequestStart();  
           },  
           complete: function () {  
                base.RequestEnd();  
           },  
           success: function (rs) {  
                if (typeof fnSuccess === "function")  
                     fnSuccess(rs);  
           },  
           error: function (e) {  
                if (typeof fnError === "function")  
                     fnError(e);  
           }  
      });  
 }  
 How to Use  
 Sv.AjaxPostFormData({  
           Url: "/Controller/Action",  
           Data: GetFromData()  
      }, function (rs) {  
           console.log("Succesful");  
      }, function (e) {  
           Dialog.Alert("Có lỗi trong quá trình xử lý. Vui lòng kiểm tra lại!", Dialog.Error);  
      });  
 Code BackEnd:  
 public JsonResult ImportFile(HttpPostedFileBase fileUpload)  
 {  
      var img = Path.GetFileName(sale_pontFile.FileName);  
      var path = Path.Combine(Server.MapPath("~/App_Data/"),  
                                         System.IO.Path.GetFileName(sale_pontFile.FileName));  
      sale_pontFile.SaveAs(path);  
      FileStream fstream = new FileStream(path, FileMode.Open);  
      Workbook workbook = new Workbook(fstream);  
      Worksheet ws = workbook.Worksheets[0];  
      // xác định số lương bản ghi trên exel  
      int rowcount = ws.Cells.Rows.Count;  
      Worksheet worksheet = workbook.Worksheets[0];  
      DataTable dataTable = new DataTable();  
      //dataTable = worksheet.Cells.ExportDataTable(11, 0, rowcount, 10, true);  
      dataTable = worksheet.Cells.ExportDataTable(0, 0, rowcount, 2, true);  
      var listitem = new List<ListObject>();  
      //Binding the DataTable with DataGrid  
      int count = 0;  
      for (int i = 0; i < dataTable.Rows.Count; i++)  
      {  
           count++;  
           if (string.IsNullOrEmpty(dataTable.Rows[i][0].ToString()) ||  
                string.IsNullOrEmpty(dataTable.Rows[i][1].ToString()))  
           {  
           }  
           else  
           {  
                ListObject obj = new ListObject  
                {  
                     ID = "0" + dataTable.Rows[i][0].ToString(),  
                     VALUE = string.IsNullOrEmpty(dataTable.Rows[i][1].ToString()) ? 0 : decimal.Parse(dataTable.Rows[i][1].ToString()),  
                };  
                listitem.Add(obj);  
           }  
      }  
      //}  
      fstream.Close();  
      System.IO.File.Delete(path);  
      Session["HttpPostedFileBaseImport"] = listitem;  
      return Json(new { status = listitem.Count > 0, Data = listitem }, JsonRequestBehavior.AllowGet);  
 }  

No comments:
Write comments