From b8e0ee3a11d90c3f048c6e6bd781c65b145afd42 Mon Sep 17 00:00:00 2001 From: liyawei Date: Fri, 10 Jun 2022 12:17:29 +0800 Subject: [PATCH] =?UTF-8?q?ocr,=E6=8B=86=E5=88=86=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=88=87=E6=8D=A2cos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../oss/controller/SplitFileController.java | 2 +- .../ocr/controller/OcrRestfulController.java | 11 ++- .../split/service/impl/FileSpiltService.java | 4 +- .../impl/FileSplitItemsEOServiceImpl.java | 82 ++++++++++++------- .../src/main/resources/application-dev.yml | 5 +- 5 files changed, 67 insertions(+), 37 deletions(-) diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/oss/controller/SplitFileController.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/oss/controller/SplitFileController.java index 3a7e67f51..4eb386e25 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/oss/controller/SplitFileController.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/oss/controller/SplitFileController.java @@ -51,7 +51,7 @@ public class SplitFileController { try(OutputStream os = response.getOutputStream(); /*FileInputStream fis = new FileInputStream(fileUrl);*/) { if (CosBootUtil.doesObjectExist(fileUrl)) { - FileInputStream fis = (FileInputStream) CosBootUtil.download(fileUrl); + InputStream fis = CosBootUtil.download(fileUrl); int len = 0; while ((len = fis.read()) != -1) { os.write(len); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/controller/OcrRestfulController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/controller/OcrRestfulController.java index dc28a0cf5..2cf1ccb4c 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/controller/OcrRestfulController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/controller/OcrRestfulController.java @@ -187,9 +187,16 @@ public class OcrRestfulController{ if (ObjectUtil.isNotEmpty(ossFile)) { String fileOriPath = ossFile.getUrl(); String oriName = ossFile.getFileName(); - File pdfFile = new File(fileOriPath); + try { - FileInputStream fileInputStream = new FileInputStream(pdfFile); + if (!CosBootUtil.doesObjectExist(fileOriPath)) { + if (CutEnum.CN.getValue().equals(ocrRecordEO.getCut())) { + return Result.error("无法找到该文件"); + } else { + return Result.error("File not found"); + } + } + InputStream fileInputStream = CosBootUtil.download(fileOriPath); MultipartFile multipartFile = new MockMultipartFile(oriName, oriName, ContentType.APPLICATION_OCTET_STREAM.toString(), fileInputStream); return ocrRestfulService.handleFile(multipartFile,multipartFile.getOriginalFilename(),ocrRecordEO,"add"); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/FileSpiltService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/FileSpiltService.java index b43f5375c..0353bb063 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/FileSpiltService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/FileSpiltService.java @@ -459,6 +459,7 @@ public class FileSpiltService { OutputStream out = new FileOutputStream(file); IOUtils.copy(in, out); String readPdf = ReadPdfUtil.readPdf(pdfFilePath); + file.delete(); if (StringUtils.isEmpty(readPdf)) { throw new JeroBootException("未读取到文件内容,请检查后重试!"); } @@ -592,9 +593,6 @@ public class FileSpiltService { } catch (Exception e) { e.printStackTrace(); return -1; - } finally { - // 删除创建的临时文件 TODO - } if (treeList.size() > 0 && messageList.size() > 0) { sarFileSplitMenuEOMapper.insertForeach(treeList); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java index 46f2a675f..c78f1a6c5 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java @@ -19,6 +19,7 @@ import com.jero.common.constant.enums.YesOrNoEnum; import com.jero.common.exception.JeroBootException; import com.jero.common.system.vo.LoginUser; import com.jero.common.util.DateUtils; +import com.jero.common.util.oss.CosBootUtil; import com.jero.generater.modules.online.cgform.entity.OnlCgformField; import com.jero.generater.modules.online.cgform.service.impl.OnlCgformFieldServiceImpl; import com.jero.modules.document.enums.FieldTypeEnum; @@ -77,10 +78,13 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; +import sun.misc.BASE64Decoder; +import sun.misc.BASE64Encoder; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; +import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; import java.nio.file.StandardOpenOption; @@ -129,8 +133,8 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl parameter){ @@ -157,10 +161,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl"; } else if ("IMG".equals(valEO.getType())) { - String ossFileId = valEO.getItemContent(); - OSSFile ossFile = ossFileService.getById(ossFileId); - String url = ossFile.getUrl(); - String imgUrl = imgpath + url.substring(url.lastIndexOf(File.separator)+1); + String imgUrl = valEO.getItemContent(); valEO.setItemContent(imgUrl); valContent = ""; // valContent = valEO.getItemContent(); @@ -235,13 +236,8 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl"; } else if ("IMG".equals(valEO.getType())) { - if(!valEO.getItemContent().contains(""; // valContent = valEO.getItemContent(); } else if ("TABLE".equals(valEO.getType())) { @@ -1221,11 +1217,15 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl"; valEO.setType("IMG"); // valEO.setItemContent(imgCon); @@ -1266,12 +1266,16 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl"; valEO.setType("IMG"); // valEO.setItemContent(imgCon); @@ -1310,11 +1314,15 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl"; valEO.setType("IMG"); // valEO.setItemContent(imgCon); @@ -2236,7 +2244,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl valContent = new ArrayList<>(); + BASE64Decoder base64Decoder = new BASE64Decoder(); if (getValList != null && !getValList.isEmpty()) { String preType = ""; for(SarFileSplitItemsValEO itemsValEO : getValList){ @@ -3158,7 +3167,21 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl allImgList, String fileNowPath) throws IOException { for(FileSplitValImgExportDto imgExportDto : allImgList){ - String oldPath = uploadpath+ File.separator + imgExportDto.getImgPath(); + String oldPath = imgExportDto.getImgPath(); String newPath = fileNowPath + File.separator + imgExportDto.getImgName(); - File oldFile = new File(oldPath); - if (oldFile.exists()){ - copyFile1(oldPath, newPath); + if (CosBootUtil.doesObjectExist(oldPath)){ + InputStream in = CosBootUtil.download(oldPath); + copyFile1(in, newPath); } } @@ -3206,15 +3229,16 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl