Spring 4.1.7 MVC @RequestPart 问题

发布于:2021-05-14 03:34:28

今天在spring 4.1.7 中尝试 multipart/form-data 的方式上传文本和文件混合数据,服务器老报错,说请求中并没有提供XXX字段(服务端配置的@RequestPart绑定)。


调试客户端multipart格式,甚至用 html页面,通过浏览器提交都不行。后来将 @RequestPart 换成 @RequestParam 就好了。之后查阅官方示例,也是用的后者。


https://spring.io/guides/gs/uploading-files/


后来发现字符串数据可以接收到,但文件上传,又解析不出来,猜测可能是 multipart resolver 出了问题,一路调试,发现 servlet request中是有上传的文件信息的。检查 application.properties 文件,发现已经启用了multipart:


multipart.enabled=true
multipart.max-file-size=10MB


于是删除java 配置中的


@Bean
public CommonsMultipartResolver getMultipartResolver() {
CommonsMultipartResolver resolver = new CommonsMultipartResolver();
resolver.setMaxUploadSize( 1024 * 1024 * 5 );
resolver.setMaxInMemorySize( 1024 * 1024 );
resolver.setDefaultEncoding( “UTF-8” );
return resolver;
}

然后就奇迹般的好了。猜测是spring 自己会初始化并装配 CommonsMultipartResolver,自己装配反而丢失了一些配置,具体还需研究。

相关推荐

最新更新

猜你喜欢