附带Controlle接口写法
/**
* 返回状态和内容的实体类
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BaseResult {
private Integer code; // 0:请求失败 1:请求成功
private Object data; //错误的原因或者正确的内容
}
/**
* 图文提取
* @param file
* @return文件识别的结果
*/
@RequestMapping(value = "imgCode",method = RequestMethod.POST)
public BaseResult imgCode(@RequestParam("file") MultipartFile file) {
BaseResult baseResult = new BaseResult();
File file1 = null;//创建临时文件
if (!file.isEmpty()) {//首先判断是不是空的文件
int begin = file.getOriginalFilename().indexOf(".");//对文文件的全名进行截取然后在后缀名进行删选。
int last = file.getOriginalFilename().length();
String a = file.getOriginalFilename().substring(begin, last);//获得文件后缀名
if (a.endsWith(".jpg") || a.endsWith(".png")) {
file1 = new File("tessdata/"+ UUID.randomUUID().toString().replaceAll("-","")+a);//临时文件名
try {
FileUtils.copyInputStreamToFile(file.getInputStream(), file1);
ITesseract instance = new Tesseract();
instance.setDatapath("D:\\Download\\tessdata");//外部中文包的路径
instance.setLanguage("chi_sim");//中文包名
String result = instance.doOCR(file1);
baseResult.setCode(1);
baseResult.setData(result);
} catch (Exception e) {
baseResult.setCode(0);
baseResult.setData("操作失败"+e.getMessage());
}
} else {
baseResult.setCode(0);
baseResult.setData("文件格式有误");
}
}
if (file1 != null) {
file1.delete();//如果临时文件存在,就删除文件
}
return baseResult;
}