Spring 4.1.7 MVC @RequestPart 问题

今天在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,自己装配反而丢失了一些配置,具体还需研究。

    原文作者:Spring MVC
    原文地址: https://blog.csdn.net/hankai945/article/details/50570217
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞