springBoot上傳文件時MultipartFile報空問題解決方法
1.問題描述:
之前用spring MVC,轉成spring boot之后發現上傳不能用。網上參考說是spring boot已經有CommonsMultipartResolver了,但是我的上傳后台接收的還是null。
2.解決方法
加入配置類
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.multipart.MultipartResolver;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
@Configuration
public class UploadConfig {
//顯示聲明CommonsMultipartResolver為mutipartResolver
@Bean(name = "multipartResolver")
public MultipartResolver multipartResolver() {
CommonsMultipartResolver resolver = new CommonsMultipartResolver();
resolver.setDefaultEncoding("UTF-8");
//resolveLazily屬性啟用是為了推遲文件解析,以在在UploadAction中捕獲文件大小異常
resolver.setResolveLazily(true);
resolver.setMaxInMemorySize(40960);
//上傳文件大小 5M 5*1024*1024
resolver.setMaxUploadSize(5 * 1024 * 1024);
return resolver;
}
}
在springboot啟動類上加入注解
//排除原有的Multipart配置
@EnableAutoConfiguration(exclude = {MultipartAutoConfiguration.class})
public class Application extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
特別注意Controller接收的時候一定要加上@RequestParam,否則不可用,如下所示:
@RequestParam("file") MultipartFile multipartFile