-
问题描述
最近做的需求,有上传文件参数的情况,即 MultipartFile 的情况
而且大家的系统框架中也有通过类似 @SysLog 注解切面打印入参日志的需要这时存在 MultipartFile 类型的参数的时候,估计就会遇见这种类似的情况
java.io.FileNotFoundException:
MultipartFile resource [file] cannot be resolved to URL
MultipartFile resource [file] cannot be resolved to absolute file
MultipartFile resource [file] cannot be resolved to absolute file path可能这个 MultipartFile 这是一个特殊对象的存在吧 ~ ~ ~
通过 Jackson 对 javaBean 序列化 MultipartFile 字段成json字符串的时候,有这个问题
通过 JSonObject 对 javaBean 序列化 MultipartFile 字段成 json 字符串的时候,也会有类似的问题 -
借鉴,特殊判断
// 请求参数处理 final Map
paraMap = new HashMap<>(16); if (value instanceof MultipartFile) { MultipartFile multipartFile = (MultipartFile) value; String name = multipartFile.getName(); String fileName = multipartFile.getOriginalFilename(); paraMap.put(name, fileName); } 但是这种是针对这种情况的解决
@GetMapping("/test") @ResponseBody public void test(Query query, MultipartFile file) { ........... return; }
像这种情况的,依然无法解决,只能是 兵来将挡水来土掩 了
@GetMapping("/test") @ResponseBody public void test(Query query) { ........... return; } public class Query { private MultipartFile file; private Integer page; private Integer size; // 省略Get、Set.......... }
这个时候就只能将参数对象中的参数Field进行逐一 instanceof MultipartFile,万一出现套娃的情况,就~ ~ ~
-
最后
要么将这种情况的不再进行入参的打印
要么就进行特殊的判断
在 MultipartFile 上面已经踩了两个坑了。
This is No.2.
The No.1 https://blog.csdn.net/miao_x_m/article/details/120782398
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)