南风知我不易

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

在写一个文件上传接口时,从一个老项目里copy出来了一个接口,死活报错 file not present,参考如下步骤排查

  1. 确保请求的http header里面的文件字段名和接口定义一致

    如果使用postman,则确定key和接口保持一致

  2. 在保证一切都是对的情况下,检查下项目是否配置了CommonsMultipartResolver,如果没有配置springboot自带的HiddenHttpMethodFilter会先于CommonsMultipartResolver读取MultipartRequest,但是如果HiddenHttpMethodFilter先读了,CommonsMultipartResolver就读不到了,具体的参考这个issue
    https://github.com/spring-projects/spring-boot/issues/2958

解决方式:
1.去除CommonsMultipartResolver使用官方的StandardServletMultipartResolver(推荐),官方的兼容是最好的
2.提高MultipartResolverFilter的执行顺序

至此大坑已解!用StandardServletMultipartResolver保平安,配置也记得迁移下

posted on 2024-04-17 16:29  南风知我不易  阅读(11)  评论(0编辑  收藏  举报