300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Springboot图片上传 百度ocr文字识别提取

Springboot图片上传 百度ocr文字识别提取

时间:2023-05-12 04:12:33

相关推荐

Springboot图片上传 百度ocr文字识别提取

效果

前提:百度ocr需要自行免费申请,在百度云里面自己申请,获得APP-ID,key和secret的一些必要参数。

需要在pom.xml中添加:(添加使用百度ocr接口的环境)

<properties><baiduocr.version>4.16.3</baiduocr.version></properties><dependencies><dependency><groupId>com.baidu.aip</groupId><artifactId>java-sdk</artifactId><version>${baiduocr.version}</version></dependency></dependencies>

2.在application.yml里面添加OCR配置3.html页面以及js

<html><head><meta charset="UTF-8"><title>OCX辅助</title><#include "/header.html"></head><body><div id="rrapp" v-cloak><div style="float:left;"><input type="file" ref="myfile" style="display:block" accept="image/*"/><br><#if shiro.hasPermission("archive:ocr:uploadOcr")><input type="hidden" id="ocrshow" value="true"/></#if><button @click="uploadOcr" type="success" size="mini" icon="el-icon-upload2">识别文本</button></div><div style="float: left"><textarea style="float: left" v-model="remark" rows="30" cols="100" placeholder="文本结果"></textarea></div></div><script type="text/javascript">var basePath = location.origin + "${request.contextPath}/" ;</script><script src="${request.contextPath}/statics/libs/axios.min.js?_${.now?long}"></script><script src="${request.contextPath}/statics/js/modules/ocr/upload.js?_${.now?long}"></script></body></html>

var vm = new Vue({el:'#rrapp',data:{remark:''},methods: {uploadOcr: function (event) {var ocrshow=$("#ocrshow").val();if(ocrshow){let myfile = this.$refs.myfile;let files = myfile.files;let file = files[0];var formData = new FormData();formData.append("file", file);let url= baseURL + 'archive/ocr/uploadOcr';$.ajax({type:"POST",dataType:"json",url:url,data:formData,async:false,cache:false,contentType:false,processData:false,success:function(res){vm.remark=res;}})}else{vm.remark="此账号无识别权限!";}}}});

4.Controller

package com.framework.modules.ocr;import com.baidu.aip.ocr.AipOcr;import mon.config.OcrApiConfig;import org.json.JSONArray;import org.json.JSONObject;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.bind.annotation.RestController;import org.springframework.web.multipart.MultipartFile;import java.io.IOException;import java.util.HashMap;import java.util.List;@RestController@RequestMapping("archive/ocr")public class OcrController {@Autowiredprivate OcrApiConfig ocrApiConfig;@PostMapping("/uploadOcr")@ResponseBodypublic String uploadOcr(MultipartFile file) throws IOException {StringBuffer str=new StringBuffer();HashMap options = new HashMap();options.put("language_type", "CHN_ENG");AipOcr client=new AipOcr(ocrApiConfig.getAppId(),ocrApiConfig.getApiKey(),ocrApiConfig.getSecretKey());byte [] bite=file.getBytes();JSONObject jsonObject=client.basicGeneral(bite,options);if(jsonObject.toString().contains("error_code")){str.append("文件识别有误");}else{JSONArray jsonArray= jsonObject.getJSONArray("words_result");for (int i = 0; i < jsonArray.length(); i++) {JSONObject ob= (JSONObject)jsonArray.get(i);str.append(ob.get("words")).append("\n");}}return str.toString();}}

package mon.config;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.context.annotation.Configuration;@Configuration@ConfigurationProperties(prefix="ocr")public class OcrApiConfig {private String appId;private String apiKey;private String secretKey;public String getAppId() {return appId;}public void setAppId(String appId) {this.appId = appId;}public String getApiKey() {return apiKey;}public void setApiKey(String apiKey) {this.apiKey = apiKey;}public String getSecretKey() {return secretKey;}public void setSecretKey(String secretKey) {this.secretKey = secretKey;}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。