当前位置: 首页 > news >正文

Java后端实现对象与文件接收数据(minio测试)

实现思路:

1. 两个接口实现,一个接对象数据(file),一个接文件数据(json)。

2. json对象(base64String) 实体类信息 ,请求体统一接收

3. file, String name ,String password ,String name ,

Controller层接收

统一接收类型

    @PostMapping("/insertInfo")public R<Void> insertInfo(MultipartFile [] file, ExFeedback exFeedback) {return exFeedbackService.insertInfo(exFeedback, file);}

 

 业务批量添加代码

    @Overridepublic R<Void> insertInfo(ExFeedback exFeedback, MultipartFile[] files) {// 添加反馈内容表数据int insert = exFeedbackMapper.insert(exFeedback);// 循环遍历删除,添加图片数据for (MultipartFile file : files) {String fileName = file.getOriginalFilename();try {MinIOUtils.uploadFile(minIOConfig.getBucketName(), fileName, file.getInputStream());} catch (Exception e) {throw new RuntimeException(e);}// 图片url路径String imgUrl = MinIOUtils.getBasisUrl() + fileName;// 添加图片数据ExImg exImg = new ExImg();exImg.setFeedbackId(exFeedback.getId());exImg.setImgUrl(imgUrl);exImg.setImgName(fileName);// 循环添加数据exImgMapper.insert(exImg);}return R.success();}

业务批量删除代码

    @Overridepublic R<Void> removeByIdInfo(ExFeedback exFeedback) {// 删除反馈内容exFeedbackMapper.deleteById(exFeedback);// 获取图片List<ExImg> exImg = exImgMapper.selectList(new LambdaQueryWrapper<ExImg>().eq(ExImg::getFeedbackId, exFeedback.getId()));// 循环遍历删除服务器图片exImg.forEach(re -> {try {MinIOUtils.removeFile(minIOConfig.getBucketName(), re.getImgName());} catch (Exception e) {throw new RuntimeException("删除minio图片失败");}});// 循环遍历删除exImgMapper.deleteBatchIds(exImg);return R.success();}

http://www.lryc.cn/news/347666.html

相关文章:

  • 考研踩坑经验分享
  • Android Compose 一:基础控件
  • python3.12.0 在Linux 制作镜像包 部署到docker 全过程
  • STM32理论 —— μCOS-Ⅲ(新)
  • 衢州知识付费系统报价,教师如何做精品课程?怎么创造精品课程?
  • 在Vue中,可以通过使用<slot>元素和name属性来创建具名插槽。这样您就可以为一个组件的不同部分定义不同的内容。 以下是一个简单的示例:
  • C++笔试强训day19
  • MySQL软件安装基于压缩包
  • 04 贝尔曼最优公式
  • 印象笔记使用技巧
  • 产品设计中的“注册”说明
  • 【linux学习】多线程(1)
  • Leetcode 3149. Find the Minimum Cost Array Permutation
  • Python | 为列表中的元素分配唯一值
  • HTML炫酷的相册
  • C++笔试强训day20
  • 【PHP【实战项目】系统性教学】——使用最精简的代码完成用户的登录与退出
  • Linux下的常用基本指令
  • phpstorm环境配置与应用
  • 【Qt 学习笔记】Qt常用控件 | 布局管理器 | 水平布局Horizontal Layout
  • Hive Aggregation 聚合函数
  • Unity 性能优化之GPU Instancing(五)
  • LeetCode 138. 随机链表的复制
  • 【PC微信小程序点不动处理方法】
  • 量化交易:日内网格交易策略.md
  • Ubuntu 20.04在Anaconda虚拟环境中配置PyQt4
  • charts3D地球--添加航线
  • 变色龙还是树懒:揭示大型语言模型在知识冲突中的行为
  • Android OpenMAX(四)OMX Core
  • 【Linux】轻量级应用服务器如何开放端口 -- 详解