bugfix:
1. 移到common路径下
This commit is contained in:
@@ -99,7 +99,6 @@ public class ShiroConfig {
|
|||||||
filterChainDefinitionMap.put("/sys/common/static/**", "anon");//图片预览 &下载文件不限制token
|
filterChainDefinitionMap.put("/sys/common/static/**", "anon");//图片预览 &下载文件不限制token
|
||||||
filterChainDefinitionMap.put("/sys/common/pdf/**", "anon");//pdf预览
|
filterChainDefinitionMap.put("/sys/common/pdf/**", "anon");//pdf预览
|
||||||
filterChainDefinitionMap.put("/crawler/**", "anon");//pdf预览
|
filterChainDefinitionMap.put("/crawler/**", "anon");//pdf预览
|
||||||
filterChainDefinitionMap.put("/database/experimentFile/uploadAll", "anon");//pdf批量上传接口
|
|
||||||
|
|
||||||
//filterChainDefinitionMap.put("/sys/common/view/**", "anon");//图片预览不限制token
|
//filterChainDefinitionMap.put("/sys/common/view/**", "anon");//图片预览不限制token
|
||||||
//filterChainDefinitionMap.put("/sys/common/download/**", "anon");//文件下载不限制token
|
//filterChainDefinitionMap.put("/sys/common/download/**", "anon");//文件下载不限制token
|
||||||
|
|||||||
@@ -245,84 +245,4 @@ public class ExperimentFileController extends JeecgController<ExperimentFile, IE
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 试验文件上传识别入口
|
|
||||||
*
|
|
||||||
* @param request 文件上传对象
|
|
||||||
* @return 上面结果
|
|
||||||
*/
|
|
||||||
@PostMapping(value = "/uploadAll")
|
|
||||||
public Result<?> uploadAll(HttpServletRequest request) throws Exception {
|
|
||||||
Result<OssFile> result = new Result<>();
|
|
||||||
String savePath = "123";
|
|
||||||
String bizPath = "";
|
|
||||||
|
|
||||||
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
|
|
||||||
// 获取上传文件对象
|
|
||||||
MultipartFile file = multipartRequest.getFile("file");
|
|
||||||
|
|
||||||
extractExperimentFile(file);
|
|
||||||
|
|
||||||
// 获取是否包含必填的文件类型
|
|
||||||
//savePath = CommonUtils.upload(file, bizPath, uploadType);
|
|
||||||
|
|
||||||
OssFile ossFile = new OssFile();
|
|
||||||
ossFile.setFileName(file.getOriginalFilename());
|
|
||||||
ossFile.setUrl("测试路径.txt");
|
|
||||||
// ossFile.setUrl(savePath);
|
|
||||||
// ossFileService.save(ossFile);
|
|
||||||
result.setResult(ossFile);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (oConvertUtils.isNotEmpty(savePath)) {
|
|
||||||
result.setMessage(savePath);
|
|
||||||
result.setSuccess(true);
|
|
||||||
} else {
|
|
||||||
result.setMessage("上传失败!");
|
|
||||||
result.setSuccess(false);
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
private List<Map<String, String>> extractExperimentFile(MultipartFile file) throws Exception {
|
|
||||||
List<Map<String, String>> allFileResult = new ArrayList<>();
|
|
||||||
PDDocument document = PDDocument.load(file.getInputStream());
|
|
||||||
PDFRenderer renderer = new PDFRenderer(document);
|
|
||||||
Tesseract tesseract = new Tesseract();
|
|
||||||
|
|
||||||
// 设置Tesseract数据路径(tessdata文件夹路径)
|
|
||||||
tesseract.setDatapath("/usr/share/tesseract-ocr/5/tessdata");
|
|
||||||
tesseract.setLanguage("chi_sim");
|
|
||||||
|
|
||||||
StringBuilder fullText = new StringBuilder();
|
|
||||||
|
|
||||||
Map map = new HashMap<String, String>();
|
|
||||||
for (int i = 0; i < document.getNumberOfPages(); i++) {
|
|
||||||
BufferedImage image = renderer.renderImageWithDPI(i, 300); // 高分辨率
|
|
||||||
File tempImage = new File("page_" + i + ".png");
|
|
||||||
ImageIO.write(image, "png", tempImage);
|
|
||||||
|
|
||||||
String result = tesseract.doOCR(tempImage);
|
|
||||||
fullText.append(result).append("\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (fullText.length() > 0) {
|
|
||||||
if (fullText.toString().contains("辐照试验委托书")){
|
|
||||||
map.put("fzsywts", "1");
|
|
||||||
allFileResult.add(map);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
document.close();
|
|
||||||
System.out.println("解析结果: " + allFileResult);
|
|
||||||
System.out.println("所有文本: " + fullText);
|
|
||||||
|
|
||||||
return allFileResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,10 @@ package org.jeecg.modules.system.controller;
|
|||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import net.sourceforge.tess4j.Tesseract;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.apache.pdfbox.pdmodel.PDDocument;
|
||||||
|
import org.apache.pdfbox.rendering.PDFRenderer;
|
||||||
import org.jeecg.common.api.vo.Result;
|
import org.jeecg.common.api.vo.Result;
|
||||||
import org.jeecg.common.constant.CommonConstant;
|
import org.jeecg.common.constant.CommonConstant;
|
||||||
import org.jeecg.common.constant.SymbolConstant;
|
import org.jeecg.common.constant.SymbolConstant;
|
||||||
@@ -22,10 +25,14 @@ import org.springframework.web.multipart.MultipartHttpServletRequest;
|
|||||||
import org.springframework.web.servlet.HandlerMapping;
|
import org.springframework.web.servlet.HandlerMapping;
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
|
||||||
|
import javax.imageio.ImageIO;
|
||||||
|
import java.awt.image.BufferedImage;
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.net.URLDecoder;
|
import java.net.URLDecoder;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@@ -197,43 +204,82 @@ public class CommonController {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
// @PostMapping(value = "/upload2")
|
/**
|
||||||
// public Result<?> upload2(HttpServletRequest request, HttpServletResponse response) {
|
* 试验文件上传识别入口
|
||||||
// Result<?> result = new Result<>();
|
*
|
||||||
// try {
|
* @param request 文件上传对象
|
||||||
// String ctxPath = uploadpath;
|
* @return 上面结果
|
||||||
// String fileName = null;
|
*/
|
||||||
// String bizPath = "files";
|
@PostMapping(value = "/uploadAll")
|
||||||
// String tempBizPath = request.getParameter("biz");
|
public Result<?> uploadAll(HttpServletRequest request) throws Exception {
|
||||||
// if(oConvertUtils.isNotEmpty(tempBizPath)){
|
Result<OssFile> result = new Result<>();
|
||||||
// bizPath = tempBizPath;
|
String savePath = "123";
|
||||||
// }
|
String bizPath = "";
|
||||||
// String nowday = new SimpleDateFormat("yyyyMMdd").format(new Date());
|
|
||||||
// File file = new File(ctxPath + File.separator + bizPath + File.separator + nowday);
|
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
|
||||||
// if (!file.exists()) {
|
// 获取上传文件对象
|
||||||
// file.mkdirs();// 创建文件根目录
|
MultipartFile file = multipartRequest.getFile("file");
|
||||||
// }
|
|
||||||
// MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
|
extractExperimentFile(file);
|
||||||
// MultipartFile mf = multipartRequest.getFile("file");// 获取上传文件对象
|
|
||||||
// String orgName = mf.getOriginalFilename();// 获取文件名
|
// 获取是否包含必填的文件类型
|
||||||
// fileName = orgName.substring(0, orgName.lastIndexOf(".")) + "_" + System.currentTimeMillis() + orgName.substring(orgName
|
//savePath = CommonUtils.upload(file, bizPath, uploadType);
|
||||||
// .indexOf("."));
|
|
||||||
// String savePath = file.getPath() + File.separator + fileName;
|
OssFile ossFile = new OssFile();
|
||||||
// File savefile = new File(savePath);
|
ossFile.setFileName(file.getOriginalFilename());
|
||||||
// FileCopyUtils.copy(mf.getBytes(), savefile);
|
ossFile.setUrl("测试路径.txt");
|
||||||
// String dbpath = bizPath + File.separator + nowday + File.separator + fileName;
|
// ossFile.setUrl(savePath);
|
||||||
// if (dbpath.contains("\\")) {
|
// ossFileService.save(ossFile);
|
||||||
// dbpath = dbpath.replace("\\", "/");
|
result.setResult(ossFile);
|
||||||
// }
|
|
||||||
// result.setMessage(dbpath);
|
|
||||||
// result.setSuccess(true);
|
|
||||||
// } catch (IOException e) {
|
|
||||||
// result.setSuccess(false);
|
if (oConvertUtils.isNotEmpty(savePath)) {
|
||||||
// result.setMessage(e.getMessage());
|
result.setMessage(savePath);
|
||||||
// log.error(e.getMessage(), e);
|
result.setSuccess(true);
|
||||||
// }
|
} else {
|
||||||
// return result;
|
result.setMessage("上传失败!");
|
||||||
// }
|
result.setSuccess(false);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<Map<String, String>> extractExperimentFile(MultipartFile file) throws Exception {
|
||||||
|
List<Map<String, String>> allFileResult = new ArrayList<>();
|
||||||
|
PDDocument document = PDDocument.load(file.getInputStream());
|
||||||
|
PDFRenderer renderer = new PDFRenderer(document);
|
||||||
|
Tesseract tesseract = new Tesseract();
|
||||||
|
|
||||||
|
// 设置Tesseract数据路径(tessdata文件夹路径)
|
||||||
|
tesseract.setDatapath("/usr/share/tesseract-ocr/5/tessdata");
|
||||||
|
tesseract.setLanguage("chi_sim");
|
||||||
|
|
||||||
|
StringBuilder fullText = new StringBuilder();
|
||||||
|
|
||||||
|
Map map = new HashMap<String, String>();
|
||||||
|
for (int i = 0; i < document.getNumberOfPages(); i++) {
|
||||||
|
BufferedImage image = renderer.renderImageWithDPI(i, 300); // 高分辨率
|
||||||
|
File tempImage = new File("page_" + i + ".png");
|
||||||
|
ImageIO.write(image, "png", tempImage);
|
||||||
|
|
||||||
|
String result = tesseract.doOCR(tempImage);
|
||||||
|
fullText.append(result).append("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fullText.length() > 0) {
|
||||||
|
if (fullText.toString().contains("辐照试验委托书")){
|
||||||
|
map.put("fzsywts", "1");
|
||||||
|
allFileResult.add(map);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
document.close();
|
||||||
|
System.out.println("解析结果: " + allFileResult);
|
||||||
|
System.out.println("所有文本: " + fullText);
|
||||||
|
|
||||||
|
return allFileResult;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 本地文件上传
|
* 本地文件上传
|
||||||
|
|||||||
Reference in New Issue
Block a user