Spring Ajax file upload

I am using jquery ajaxSubmit function for submitting my form. I also have file upload field in the form.

Here's the code of ajaxSubmit function.

$('#wizard-p-7').submit(function(e) {
            var formURL = $(this).attr("action");

                        url : formURL,
                        async : false,
                        contentType: 'multipart/form-data',
                        success : function(data) {
                            if (data == "version match.") {
                                check = true;
                            } else {
                                check = false;
                        error : function(jqXHR,
                                errorThrown) {
                            window.location = "<%=application.getContextPath()%>/pages/error/globalError.jsp";
            e.preventDefault(); //STOP default action
            // e.unbind(); //unbind. to stop multiple form submit.
            return false;

Here is my controller method

@RequestMapping(value = "/sectioneight", method = RequestMethod.POST)
public @ResponseBody Object sectioneight(@ModelAttribute("iepDTO") ProjectDTO iepDTO,
        @RequestParam("id") String id) {
    try {
        List<MultipartFile> files = iepDTO.getPolicyBriefFiles();
            for(MultipartFile file : files){
                String filePath = "C:/temp/" + file.getOriginalFilename();
                File dest = new File(filePath);
     catch (Exception e) {
        System.out.println("Exception: "+e.getMessage());
        logger.error("ProjectController - sectioneight : "+ e.getMessage());
    return "redirect:home";


Now the problem is if I select a file for uploading and submit the form everything works fine. But if I submit the form without selecting file it gives 400 Bad request error in the browser console. Can't find what is wrong.

Any clue?


Solved. Problem was because of ajax. If I don't select a file it sends null string in place of file.

The solution is now I check before submitting the form if file is selected or not. If not, I disable the field with jquery

        $("#policyBriefFiles").prop('disabled', true);

Life's good:)

Need Your Help

Multiple Lat/Long Coordinates to Miles

matlab latitude-longitude

I have a few x,y coordinates that I wanted to get the area of. I figured the best course of action is to convert the X,Y decimal coordinates into nautical miles and then do the area of a polygon. I...

Bootstrap Carousel Fade Transition

jquery html twitter-bootstrap

I am using Bootstrap Carousel with fade transition at the top of my website.The code looks like as follows: