diff --git a/spring-mvc-java/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java b/spring-mvc-java/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java index 3f451f4259..6084943ddd 100644 --- a/spring-mvc-java/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java +++ b/spring-mvc-java/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java @@ -36,8 +36,6 @@ public class ClientWebConfig extends WebMvcConfigurerAdapter { super.addViewControllers(registry); registry.addViewController("/sample.html"); - registry.addViewController("/fileUpload.html"); - registry.addViewController("/fileUploadForm.html"); } @Bean diff --git a/spring-mvc-java/src/main/java/org/baeldung/spring/web/config/MainWebAppInitializer.java b/spring-mvc-java/src/main/java/org/baeldung/spring/web/config/MainWebAppInitializer.java index 9dd9ae98b0..ad37bbec5e 100644 --- a/spring-mvc-java/src/main/java/org/baeldung/spring/web/config/MainWebAppInitializer.java +++ b/spring-mvc-java/src/main/java/org/baeldung/spring/web/config/MainWebAppInitializer.java @@ -14,8 +14,7 @@ import org.springframework.web.servlet.DispatcherServlet; public class MainWebAppInitializer implements WebApplicationInitializer { - private static final String TMP_FOLDER = "C:/Users/ivan/Desktop/tmp"; // 5 - // MB + private static final String TMP_FOLDER = "C:/Users/ivan/Desktop/tmp"; private static final int MAX_UPLOAD_SIZE = 5 * 1024 * 1024; // 5 MB /** diff --git a/spring-mvc-java/src/main/java/org/baeldung/spring/web/config/WebConfig.java b/spring-mvc-java/src/main/java/org/baeldung/spring/web/config/WebConfig.java index b7d87dffbc..cd9ae582d8 100644 --- a/spring-mvc-java/src/main/java/org/baeldung/spring/web/config/WebConfig.java +++ b/spring-mvc-java/src/main/java/org/baeldung/spring/web/config/WebConfig.java @@ -4,6 +4,7 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.ClassPathResource; +import org.springframework.web.multipart.commons.CommonsMultipartResolver; import org.springframework.web.servlet.ViewResolver; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; @@ -27,15 +28,14 @@ public class WebConfig extends WebMvcConfigurerAdapter { // return new StandardServletMultipartResolver(); // } - // @Bean(name = "multipartResolver") - // public CommonsMultipartResolver multipartResolver() { - // - // final CommonsMultipartResolver multipartResolver = new - // CommonsMultipartResolver(); - // multipartResolver.setMaxUploadSize(100000); - // - // return multipartResolver; - // } + @Bean(name = "multipartResolver") + public CommonsMultipartResolver multipartResolver() { + + final CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(); + multipartResolver.setMaxUploadSize(100000); + + return multipartResolver; + } @Override public void addViewControllers(final ViewControllerRegistry registry) { diff --git a/spring-mvc-java/src/main/java/org/baeldung/web/controller/FileUploadController.java b/spring-mvc-java/src/main/java/org/baeldung/web/controller/FileUploadController.java index a25a620c8b..6f557adf0f 100644 --- a/spring-mvc-java/src/main/java/org/baeldung/web/controller/FileUploadController.java +++ b/spring-mvc-java/src/main/java/org/baeldung/web/controller/FileUploadController.java @@ -1,18 +1,5 @@ package org.baeldung.web.controller; -import java.io.File; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.apache.commons.fileupload.FileItem; -import org.apache.commons.fileupload.FileUploadException; -import org.apache.commons.fileupload.disk.DiskFileItemFactory; -import org.apache.commons.fileupload.servlet.ServletFileUpload; -import org.apache.commons.io.FileUtils; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; @@ -23,58 +10,23 @@ import org.springframework.web.multipart.MultipartFile; @Controller public class FileUploadController { - @RequestMapping(value = "/addFile1", method = RequestMethod.POST) + @RequestMapping(value = "/fileUpload", method = RequestMethod.GET) + public String displayForm() { + + return "fileUploadForm"; + } + + @RequestMapping(value = "/uploadFile", method = RequestMethod.POST) public String submit(@RequestParam("file") final MultipartFile file, final ModelMap modelMap) { - modelMap.addAttribute("fileName", file.getOriginalFilename()); - modelMap.addAttribute("fileType", file.getContentType()); - + modelMap.addAttribute("file", file); return "fileUploadView"; } - @RequestMapping(value = "/addFile2", method = RequestMethod.POST) - public String submit(final HttpServletRequest request, final HttpServletResponse response, - final ModelMap modelMap) { - - final String TEMP_PATH = "/tmp/"; - - try { - - final DiskFileItemFactory factory = new DiskFileItemFactory(); - - // Configure a repository (to ensure a secure temp location is used) - final File repository = new File(TEMP_PATH); - factory.setRepository(repository); - - // Create a new file upload handler - final ServletFileUpload upload = new ServletFileUpload(factory); - - // Parse the request - final List items = upload.parseRequest(request); - - final Iterator iter = items.iterator(); - - while (iter.hasNext()) { - - final FileItem item = iter.next(); - - if (!item.isFormField()) { - - final File targetFile = new File(TEMP_PATH + item.getName()); - FileUtils.copyInputStreamToFile(item.getInputStream(), targetFile); - - modelMap.addAttribute("fileName", item.getName()); - modelMap.addAttribute("fileType", item.getContentType()); - } - } - - } catch (final FileUploadException e) { - e.printStackTrace(); - - } catch (final IOException e) { - e.printStackTrace(); - } + @RequestMapping(value = "/uploadMultiFile", method = RequestMethod.POST) + public String submit(@RequestParam("files") final MultipartFile[] files, final ModelMap modelMap) { + modelMap.addAttribute("files", files); return "fileUploadView"; } } diff --git a/spring-mvc-java/src/main/webapp/WEB-INF/view/fileUploadForm.jsp b/spring-mvc-java/src/main/webapp/WEB-INF/view/fileUploadForm.jsp index 05a7e25a02..371acdc0ed 100644 --- a/spring-mvc-java/src/main/webapp/WEB-INF/view/fileUploadForm.jsp +++ b/spring-mvc-java/src/main/webapp/WEB-INF/view/fileUploadForm.jsp @@ -8,13 +8,13 @@ -

Enter The File to Upload (MultipartFile handling)

+

Enter The File to Upload

- + - + @@ -24,16 +24,24 @@ -
+
-

Enter The File to Upload (HttpServletRequest handling)

+

Enter The Files to Upload (Multiple files)

- +
Select a file to uploadSelect a file to upload (Single file)
- + + + + + + + + + diff --git a/spring-mvc-java/src/main/webapp/WEB-INF/view/fileUploadView.jsp b/spring-mvc-java/src/main/webapp/WEB-INF/view/fileUploadView.jsp index 779c26a597..d6f748c6af 100644 --- a/spring-mvc-java/src/main/webapp/WEB-INF/view/fileUploadView.jsp +++ b/spring-mvc-java/src/main/webapp/WEB-INF/view/fileUploadView.jsp @@ -5,16 +5,32 @@ Spring MVC File Upload -

Submitted File

+ +

Submitted File (Single)

Select a file to upload
Select a file to upload
Select a file to upload
- + - +
OriginalFileName :${fileName}${file.originalFilename}
Type :${fileType}${file.contentType}
+
+ +

Submitted Files (Multiple)

+ + + + + + + + + + + +
OriginalFileName :${file.originalFilename}
Type :${file.contentType}
\ No newline at end of file