低代碼如何從硬盤讀取文件并保存(低代碼如何從硬盤讀取文件并保存文件)
8年低代碼折騰實(shí)踐,帶大家玩轉(zhuǎn)低代碼。
同學(xué)們在使用低代碼平臺開發(fā)過程中可能會遇到附件上傳的問題,但是又不知道使用什么方式來解決,可能您會使用一個(gè)工具類來對附件進(jìn)行上傳,但是上傳后發(fā)現(xiàn)無法解析附件,JEPaaS就提供了一套文件上傳、下載的機(jī)制,本章就給大家介紹一下JEPaaS如何上傳附件,并且保存到數(shù)據(jù)庫中。
一、實(shí)現(xiàn)思路
核心:DocumentBusService使用JEPaaS提供的文件管理類,完成對附件的上傳和保存。
二、具體操作
1.使用File解析文件
2.轉(zhuǎn)換為FileUpload對象
3.調(diào)用saveSingleFile方法保存單個(gè)附件
4.將文件key保存到數(shù)據(jù)庫,單附件為文件名*文件key 例如 示例.png*7fFiISr9mnQt3ZTBkMv
多附件為:數(shù)組中放對象 對象鍵有:name文件名,path文件key,id文件key
例如: [{name: '示例.png', path: '7fFiISr9mnQt3ZTBkMv', cls: '', id: '7fFiISr9mnQt3ZTBkMv', extend: ''}]
@Autowired private PCDynaServiceTemplate serviceTemplate; @Autowired private DocumentBusService documentBusService;
public FileBO doUpdateDocFile(String filePath) { EndUser currentUser= SecurityUserHolder.getCurrentUser(); //1.保存一個(gè)文件到業(yè)務(wù)表字段中 File file=new File(filePath); FileUpload uploadFile= null; try { Path path = new File(file.getName()).toPath(); String mimeType = Files.probeContentType(path); uploadFile = new FileUpload(file.getName(),mimeType,file.length(),new FileInputStream(file)); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } FileBO fileBO = null; if(null != uploadFile){ fileBO = documentBusService.saveSingleFile(uploadFile,currentUser.getUserId()); DynaBean ywBean=serviceTemplate.selectOneByPk("JE_CORE_ENDUSER"," AND USERCODE='admin'"); ywBean.set("PHOTO",fileBO.getRelName() "*" fileBO.getFileKey()); ywBean=serviceTemplate.update(ywBean); //2.刪除一個(gè)文件 List<String> fileKeys=new ArrayList<>(); fileKeys.add("文件key"); documentBusService.delFilesByKey(fileKeys,currentUser.getUserId()); //3.獲取文件 FileBO downloadFileBO=documentBusService.readFile("文件key"); InputStream downloadFile=downloadFileBO.getFile(); } return fileBO; }
5.通過返回的fileBo對象,可以獲取到附件的名稱和JEPaaS儲存后的文件key,這時(shí)候經(jīng)過第四步的拼接,就可以保存到數(shù)據(jù)庫當(dāng)中,這樣就完成了附件上傳。
三、總結(jié)
使用該方法可以做到最簡便的開發(fā),開發(fā)人員只需要關(guān)注自己的業(yè)務(wù)處理即可,做到真正的低代碼開發(fā)。