FastFoodCoding

Login


Connect with one of the following accounts





Login

Please wait while we redirect...

Views: 64   



Description

Spring has built in multipart support to handle file uploads in web applications with the help of MultipartResolver objects, Spring provides a MultipartResolver for use with Commons FileUpload . By default, no multipart handling will be done by Spring, so developers should implement the logic by themselves.

1) pom.xml

Add below dependency in pom.xml

    <dependency>
        <groupId>commons-fileupload</groupId>
        <artifactId>commons-fileupload</artifactId>
        <version>1.3.1</version>
    </dependency>

2) Add below code in spring configuration xml file

<beans:bean id="commonsMultipartResolver"
        class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

         <!--  upload size -->
        <beans:property name="maxUploadSize" value="1000000" />

    </beans:bean>

3) singlefileupload.jsp

<html>
<body>
    <form method="POST" action="/upload/singleFileUpload" enctype="multipart/form-data">
        Please select a File <input type="file" name="file">

        File Description: <input type="text" name="description">


        <input type="submit" value="Upload"> click me to upload the file.
    </form>    
</body>
</html>

4)mutliplefilesupload.jsp


<html>
<body>
    <form method="POST" action="/upload/uploadMultipleFiles" enctype="multipart/form-data">
        Please select file1 :<input type="file" name="file">

        File Description1: <input type="text" name="description">


        Please select file2 :<input type="file" name="file">

        File Description2 : <input type="text" name="description">


        <input type="submit" value="Upload"> click me to upload the files
    </form>
</body>
</html>

5) MultiFileUploadController .java


import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

@RestController 
@RequestMapping(value ="/upload”)

public class MultiFileUploadController {

private static String UPLOADED_FOLDER = "E://uploadedfiles//";

@RequestMapping(value = "/singleFileUpload ", method = RequestMethod.POST)
public String uploadSingleFile(@RequestParam("description ") String description,@RequestParam("file") MultipartFile file) {

             String status="";
        if (!file.isEmpty()) {
            try {
            byte[] bytes = file.getBytes();
            File dir = new File(UPLOADED_FOLDER)    
            if (!dir.exists())
                    dir.mkdirs();


                File uploadFile = new File(dir.getAbsolutePath()+ File.separator + 
                                         file.getOriginalFilename());
                BufferedOutputStream outputStream = new BufferedOutputStream(
                                new FileOutputStream(uploadFile));
                outputStream.write(bytes);
                outputStream.close();

                status = status +  " Successfully uploaded file=" + file.getOriginalFilename();
            } catch (Exception e) {
                status = status +  "Failed to upload " + file.getOriginalFilename()+ " " + e.getMessage();
            }
        }
return status; 
    }

    @RequestMapping(value = "/uploadMultipleFiles ", method =RequestMethod.POST)
public  String uploadMultipleFiles(@RequestParam("description") String[] descriptions,@RequestParam("file") MultipartFile[] files) {

        if (files.length != descriptions.length)
            return "Mismatching no of files are equal to description";

        String status = "";
        File dir = new File(UPLOADED_FOLDER)
        for (int i = 0; i < files.length; i++) {
            MultipartFile file = files[i];
            String description = descriptions[i];
            try {
                byte[] bytes = file.getBytes();

                if (!dir.exists())
                    dir.mkdirs();

                File uploadFile = new File(dir.getAbsolutePath()
                        + File.separator + file.getOriginalFilename());
                BufferedOutputStream outputStream = new BufferedOutputStream(
                        new FileOutputStream(uploadFile));
                outputStream.write(bytes);
                outputStream.close();

                status = status + "You successfully uploaded file=" + file.getOriginalFilename();
            } catch (Exception e) {
                status = status + "Failed to upload " + file.getOriginalFilename()+ " " + e.getMessage();
            }
        }
        return status;
    }
}



On By


Top Tutorials

Top Questions

Top Articles

Top Blogs

Top News