Spring MVC Tutorial: How to Upload Multiple Files to Specific Location

This is another complete Spring MVC tutorial which accepts file on Upload form and copy it to specific folder on “Submit” event. As usual we have a dependency on Hello World Spring MVC Example.

Crunchify Spring MVC - Multiple file upload Example

So, these are the additions / changes we need to perform in this example:

  • New file: CrunchifyFileUploadController.java
  • New file: CrunchifyFileUpload.java
  • New file: uploadfile.jsp
  • New file: uploadfilesuccess.jsp
  • Modified file: crunchify-servlet.xml
  • 2 new jar files: commons-io-2.4.jar and commons-fileupload-1.3.jar

Now let’s get started:

Step1: Pre-Requisite: http://crunchify.com/hello-world-example-spring-mvc-3-2-1/ (Deploy this project successfully on Tomcat)

Step2: SpringController 

Create a Spring 3 MVC based controller which handles file upload. There are two methods in this controller:

  1. crunchifyDisplayForm – It simply forwards request to the pageuploadfile.jsp
  2. crunchifySave – Fetches the form using @ModelAttribute annotation and get the File content from it. It creates a list of filenames of files being uploaded and pass this list to success page.

Step3: Model – Form Object

Create a Java bean which acts as Model/Form object for our Spring application. This bean contains a List of org.springframework.web.multipart.MultipartFile objects. Spring framework provides a useful class MultipartFile which can be used to fetch the file content of uploaded file. Apart from its content, the MultipartFile object also gives you other useful information such as filename, file size etc.

Step4: JSP Views

Now create the view pages for this application. We will need two JSPs, one to display file upload form and another to show result on successful upload.

The uploadfile.jsp displays a form with file input. Apart from this we have added small jquery snippet onclick of Add button. This will add a new file input component at the end of form. This allows user to upload as many files as they want.

Note that we have set enctype=”multipart/form-data” attribute of our <form> tag.

Step5: Update Spring Configuration

Add below bean to crunchify-servlet.xml  file, just above  <bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">  line.

Step6: Checkout Result.

Start tomcat and point your browser to this URL: http://localhost:8080/CrunchifySpringMVC3.2.1/upload.html and you should see screen similar to screenshot at the top of this page.

After file upload you will see success message like this. You can always beautify your jsp file the way you want.

Crunchify Spring MVC - Multiple file upload Example Result

List of all Spring MVC Examples, Java Examples.

Have anything to add to this article? Please chime in and join the conversion.
Tweet about this on TwitterShare on FacebookShare on Google+Pin on PinterestShare on TumblrBuffer this page

Enjoyed this post?

Be sure to subscribe to the Crunchify newsletter and get regular updates about awesome posts just like this one and more! Join more than 8000 subscribers!

  • Radhika Agarwal

    I have a similar query as below.I want to insert image url in mysql DB using hibernate and spring mvc but i am using multipart file upload. Please guide me in doing this.

  • Naveen Kumar Mishra

    Please guide me how to upload images in database

    • http://crunchify.com/ a.shah

      Hi Naveen – Sorry for late reply.

      In CrunchifyFileUploadController.java in if condition you need to add your DB connectivity, Copy image/file to BLOB type in to DB. As I don’t have any information which DB you are using or environment, would be difficult to provide you code here. Please email me with some more information and would definitely reply to your with solution in a day or so. Thanks.

      • Naveen Kumar Mishra

        I want to store image/txt file in mysql database by using SpringMVC 3.0 and Hibernate 3.1.

      • Naveen Kumar Mishra

        i want to store images in mysql database by using SpringMVC 3.0 and hibernate 3.1 so please help me …….

        • http://crunchify.com/ a.shah

          Please export project and send me via email. Your requirement is very generic to answer it here :)

  • Naveen Kumar Mishra

    This is good but may you guide me how to store images in database……