SpringMVC如何实现高效文件上传功能?
- 内容介绍
- 文章标签
- 相关推荐
本文共计559个文字,预计阅读时间需要3分钟。
Maven 依赖配置,Spring 包及版本:- commons-fileupload: 2.4- commons-io: 1.2.1- 使用 JavaConfig 配置 Spring MVC- 包名:com.amiu.java_config- 导入:org.springframework.web
package com.amiu.java_config; import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; public class WebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer{ @Override protected Class [] getRootConfigClasses() { // TODO Auto-generated method stub return new Class[]{MvcConfig.class}; } @Override protected Class [] getServletConfigClasses() { // TODO Auto-generated method stub return null; } @Override protected String[] getServletMappings() { // TODO Auto-generated method stub return new String[]{"/"}; } } MvcConfig
package com.amiu.java_config; import java.io.IOException; import org.apache.log4j.Logger; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.FileSystemResource; import org.springframework.web.multipart.MultipartResolver; import org.springframework.web.multipart.commons.CommonsMultipartResolver; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; @Configuration @EnableWebMvc @ComponentScan("com.amiu") public class MvcConfig extends WebMvcConfigurerAdapter{ private static final Logger logger = Logger.getLogger(MvcConfig.class); @Bean public MultipartResolver multipartResolver() { CommonsMultipartResolver commonsMultipart = new CommonsMultipartResolver(); commonsMultipart.setDefaultEncoding("UTF-8");//设置字符编码 //commonsMultipart.setMaxUploadSizePerFile(5*1024*1024);//单个文件最大上传限制 commonsMultipart.setMaxUploadSize(20*1024*1024);//设置最大上传大小 try { //设置临时路径 commonsMultipart.setUploadTempDir(new FileSystemResource("/tempImg")); } catch (IOException e) { logger.error(e.getMessage()); e.printStackTrace(); } return commonsMultipart; } @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { configurer.enable(); } } spring controller
package com.amiu.upload;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.annotation.PostConstruct;
import org.apache.log4j.Logger;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
@RestController
public class ImgController {
private static final Logger logger = Logger.getLogger(ImgController.class);
//上传最大限制
private long UPLOAD_FILE_MAX_SIZE = 5*1024*1024;
private List
本文共计559个文字,预计阅读时间需要3分钟。
Maven 依赖配置,Spring 包及版本:- commons-fileupload: 2.4- commons-io: 1.2.1- 使用 JavaConfig 配置 Spring MVC- 包名:com.amiu.java_config- 导入:org.springframework.web
package com.amiu.java_config; import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; public class WebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer{ @Override protected Class [] getRootConfigClasses() { // TODO Auto-generated method stub return new Class[]{MvcConfig.class}; } @Override protected Class [] getServletConfigClasses() { // TODO Auto-generated method stub return null; } @Override protected String[] getServletMappings() { // TODO Auto-generated method stub return new String[]{"/"}; } } MvcConfig
package com.amiu.java_config; import java.io.IOException; import org.apache.log4j.Logger; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.FileSystemResource; import org.springframework.web.multipart.MultipartResolver; import org.springframework.web.multipart.commons.CommonsMultipartResolver; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; @Configuration @EnableWebMvc @ComponentScan("com.amiu") public class MvcConfig extends WebMvcConfigurerAdapter{ private static final Logger logger = Logger.getLogger(MvcConfig.class); @Bean public MultipartResolver multipartResolver() { CommonsMultipartResolver commonsMultipart = new CommonsMultipartResolver(); commonsMultipart.setDefaultEncoding("UTF-8");//设置字符编码 //commonsMultipart.setMaxUploadSizePerFile(5*1024*1024);//单个文件最大上传限制 commonsMultipart.setMaxUploadSize(20*1024*1024);//设置最大上传大小 try { //设置临时路径 commonsMultipart.setUploadTempDir(new FileSystemResource("/tempImg")); } catch (IOException e) { logger.error(e.getMessage()); e.printStackTrace(); } return commonsMultipart; } @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { configurer.enable(); } } spring controller
package com.amiu.upload;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.annotation.PostConstruct;
import org.apache.log4j.Logger;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
@RestController
public class ImgController {
private static final Logger logger = Logger.getLogger(ImgController.class);
//上传最大限制
private long UPLOAD_FILE_MAX_SIZE = 5*1024*1024;
private List

