在写一个文件上传接口时,从一个老项目里copy出来了一个接口,死活报错 file not present,参考如下步骤排查
-
确保请求的http header里面的文件字段名和接口定义一致
如果使用postman,则确定key和接口保持一致
-
在保证一切都是对的情况下,检查下项目是否配置了CommonsMultipartResolver,如果没有配置springboot自带的HiddenHttpMethodFilter会先于CommonsMultipartResolver读取MultipartRequest,但是如果HiddenHttpMethodFilter先读了,CommonsMultipartResolver就读不到了,具体的参考这个issue
https://github.com/spring-projects/spring-boot/issues/2958
解决方式:
1.去除CommonsMultipartResolver使用官方的StandardServletMultipartResolver(推荐),官方的兼容是最好的
2.提高MultipartResolverFilter的执行顺序
至此大坑已解!用StandardServletMultipartResolver保平安,配置也记得迁移下
标签:HiddenHttpMethodFilter,SpringBoot,接口,CommonsMultipartResolver,file,present From: https://www.cnblogs.com/danzZ/p/18141090