低代碼如何從硬盤(pán)讀取文件并保存(低代碼如何從硬盤(pán)讀取文件并保存文件)
8年低代碼折騰實(shí)踐,帶大家玩轉(zhuǎn)低代碼。
同學(xué)們?cè)谑褂玫痛a平臺(tái)開(kāi)發(fā)過(guò)程中可能會(huì)遇到附件上傳的問(wèn)題,但是又不知道使用什么方式來(lái)解決,可能您會(huì)使用一個(gè)工具類(lèi)來(lái)對(duì)附件進(jìn)行上傳,但是上傳后發(fā)現(xiàn)無(wú)法解析附件,JEPaaS就提供了一套文件上傳、下載的機(jī)制,本章就給大家介紹一下JEPaaS如何上傳附件,并且保存到數(shù)據(jù)庫(kù)中。
一、實(shí)現(xiàn)思路
核心:DocumentBusService使用JEPaaS提供的文件管理類(lèi),完成對(duì)附件的上傳和保存。
二、具體操作
1.使用File解析文件
2.轉(zhuǎn)換為FileUpload對(duì)象
3.調(diào)用saveSingleFile方法保存單個(gè)附件
4.將文件key保存到數(shù)據(jù)庫(kù),單附件為文件名*文件key 例如 示例.png*7fFiISr9mnQt3ZTBkMv
多附件為:數(shù)組中放對(duì)象 對(duì)象鍵有: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.通過(guò)返回的fileBo對(duì)象,可以獲取到附件的名稱(chēng)和JEPaaS儲(chǔ)存后的文件key,這時(shí)候經(jīng)過(guò)第四步的拼接,就可以保存到數(shù)據(jù)庫(kù)當(dāng)中,這樣就完成了附件上傳。
三、總結(jié)
使用該方法可以做到最簡(jiǎn)便的開(kāi)發(fā),開(kāi)發(fā)人員只需要關(guān)注自己的業(yè)務(wù)處理即可,做到真正的低代碼開(kāi)發(fā)。