I am trying to upload multiple files along with normal form data. This thing i have formerly implemented in PHP now i am using to do this in ASP.NET MVC4 in C#. I have an html form
<form action="/controller/actionane" name="applicationform" class="upload-form" method="post" onsubmit="return false;" enctype="multipart/form-data" id="userform"> <input class="form-control" type="file" class="upload-file" data-max-size="12582912" multiple="multiple" name="attachment[]" value="documents"> <input class="btn btn-success" type="submit" name="submit" onclick="formSubmit()" /> </form> My Javascript Code with jquery-1.11.1 looks like this:
function formSubmit() { var form = $("form[name='applicationform']"); var data = new FormData(form[0]); $.ajax( { method: "POST", url: form.attr("action"), processData: false, // Don't process the files contentType: false, cache: false, async: false, data: data, success: function (data) { alert(data); } }); } and my controller looks like this
[HttpPost] public JsonResult submitApplication(HttpPostedFileBase[] attachment) { string fil= ""; foreach (HttpPostedFileBase file in attachment) { /*Geting the file name*/ string filename = System.IO.Path.GetFileName(file.FileName); fil += filename; /*Saving the file in server folder*/ file.SaveAs(Server.MapPath("~/Images/" + filename)); string filepathtosave = "Images/" + filename; /*HERE WILL BE YOUR CODE TO SAVE THE FILE DETAIL IN DATA BASE*/ } return this.Json(fil,JsonRequestBehavior.AllowGet); } But this is not passing files to the parameter Object reference null exception is thrown What should I do to get this running?