开始的代码:
@PostMapping(value = "/api/upload")
public Result<String> upload(MultipartFile fileStr) {
// 分页查询
return ResultUtil.success(mService.upload(fileStr));
}
结果是为空:

改成实体去接参数也不行。废话不多说,直接说解决方法。
@Autowired
private OpenMinioService minioService;
@PostMapping(value = "/api/upload")
public Result<String> upload(@RequestBody String fileStr) {
// 分页查询
return ResultUtil.success(mService.upload(fileStr));
}
接收到参数,解析为输入流:
//解码base64
String dataStr = fileStr.replace("data:image/jpeg;base64,","");
byte[] data = Base64.decodeBase64(dataStr);
in = new ByteArrayInputStream(data);
postman的调用:

后来和前端对接过程中,直接传数据不带key的这种方式会被拦截,到不了后端,后来经比对。发现我的Headers中有个参数Content-Length被我写死了,且这个设置的长度比我实际参数小,所以一致接收不到参数,😓


文章讲述了在SpringBoot应用中处理文件上传时遇到的问题及解决方案。起初使用MultipartFile接收文件失败,然后尝试通过实体类接收参数也未成功。问题根源在于Header中的Content-Length设置错误,导致参数无法正确接收。修正Content-Length的值后,前端的数据能成功传递到后端并进行Base64解码处理。
8480

被折叠的 条评论
为什么被折叠?



