JEPaaS 社区

 找回密码
 立即注册
JECloud低代码平台-官网
查看: 3467|回复: 0

【后端系列】JEPaaS从硬盘读取文件并保存

[复制链接]

10

主题

11

帖子

132

积分

凯特员工

积分
132
发表于 2022-4-13 22:08:03 | 显示全部楼层 |阅读模式
本帖最后由 凯特-姚帅龙 于 2022-4-18 18:46 编辑

同学们在使用JEPaaS低代码平台开发过程中可能会遇到附件上传的问题,但是又不知道使用什么方式来解决,可能您会使用一个工具类来对附件进行上传,但是上传后发现JEPaaS平台无法解析您的附件,那么JEPaaS就提供了一套文件上传、下载的机制,本章就给大家介绍一下JEPaaS如何上传附件,并且保存到数据库中。
一、实现思路
核心:DocumentBusService使用JEPaaS提供的文件管理类,完成对附件的上传和保存。
二、具体操作
1.使用File解析文件
2.转换为FileUpload对象
3.调用saveSingleFile方法保存单个附件
4.将文件key保存到数据库,单附件为文件名*文件key    例如 示例.png*7fFiISr9mnQt3ZTBkMv
多附件为:数组中放对象  对象键有:name文件名,path文件key,id文件key
例如: [{name: '示例.png', path: '7fFiISr9mnQt3ZTBkMv', cls: '', id: '7fFiISr9mnQt3ZTBkMv', extend: ''}]
  1. @Autowired
  2.     private PCDynaServiceTemplate serviceTemplate;
  3.     @Autowired
  4.     private DocumentBusService documentBusService;
复制代码
  1. public FileBO doUpdateDocFile(String filePath) {
  2.         EndUser currentUser= SecurityUserHolder.getCurrentUser();
  3.         //1.保存一个文件到业务表字段中
  4.         File file=new File(filePath);
  5.         FileUpload uploadFile= null;
  6.         try {
  7.             Path path = new File(file.getName()).toPath();
  8.             String mimeType = Files.probeContentType(path);
  9.             uploadFile = new FileUpload(file.getName(),mimeType,file.length(),new FileInputStream(file));
  10.         } catch (FileNotFoundException e) {
  11.             e.printStackTrace();
  12.         } catch (IOException e) {
  13.             e.printStackTrace();
  14.         }
  15.         FileBO fileBO = null;
  16.         if(null != uploadFile){
  17.             fileBO = documentBusService.saveSingleFile(uploadFile,currentUser.getUserId());
  18.             DynaBean ywBean=serviceTemplate.selectOneByPk("JE_CORE_ENDUSER"," AND USERCODE='admin'");
  19.             ywBean.set("PHOTO",fileBO.getRelName() + "*" + fileBO.getFileKey());
  20.             ywBean=serviceTemplate.update(ywBean);
  21.             //2.删除一个文件
  22.             List<String> fileKeys=new ArrayList<>();
  23.             fileKeys.add("文件key");
  24.             documentBusService.delFilesByKey(fileKeys,currentUser.getUserId());
  25.             //3.获取文件
  26.             FileBO downloadFileBO=documentBusService.readFile("文件key");
  27.             InputStream downloadFile=downloadFileBO.getFile();
  28.         }
  29.         return fileBO;
  30.     }
复制代码

5.通过返回的fileBo对象,可以获取到附件的名称和JEPaaS储存后的文件key,这时候经过第四步的拼接,就可以保存到数据库当中,这样就完成了附件上传。
三、总结

使用该方法可以做到最简便的开发,开发人员只需要关注自己的业务处理即可,做到真正的低代码开发
四、关键字

上传附件,保存附件,上传文件,保存文件,文件


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|JEPaaS 低代码平台社区 ( 京ICP备18023569号 )

GMT+8, 2024-4-20 06:08 , Processed in 0.057730 second(s), 20 queries .

Powered by 北京凯特伟业科技有限公司

Copyright © 2001-2021, JEPaaS.COM

快速回复 返回顶部 返回列表