javaee论坛

普通会员

225648

帖子

355

回复

369

积分

楼主
发表于 2019-10-30 09:46:50 | 查看: 69 | 回复: 0

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

项目环境:springboot2.0,如果首次使用springboot,请参考以前博客。下面介绍详细步骤。

需要在pom.xml中添加:(添加使用百度ocr接口的环境)<dependency><groupId>com.baidu.aip</groupId><artifactId>java-sdk</artifactId><version>4.4.1</version></dependency>在application.properties.里面或者yml里面添加关于文件上传的支持:spring.servlet.multipart.enabled=true#上传文件的临时目录(一般情况下不用特意修改)#spring.servlet.multipart.location=#上传文件最大为1M(默认值1M根据自身业务自行控制即可)spring.servlet.multipart.max-file-size=104857600#上传请求最大为10M(默认值10M根据自身业务自行控制即可)spring.servlet.multipart.max-request-size=104857600#文件大小阈值,当大于这个阈值时将写入到磁盘,否则存在内存中,(默认值0一般情况下不用特意修改)spring.servlet.multipart.file-size-threshold=0#判断是否要延迟解析文件(相当于懒加载,一般情况下不用特意修改)spring.servlet.multipart.resolve-lazily=false编写后台controller:OCRcontroller:importcom.baidu.aip.ocr.AipOcr;importorg.json.JSONObject;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.PostMapping;importorg.springframework.web.bind.annotation.ResponseBody;importorg.springframework.web.multipart.MultipartFile;importjava.io.IOException;importjava.util.HashMap;importjava.util.Map;@ControllerpublicclassOCRController{//接口申请免费,请自行申请使用,如果学习使用可以用下publicstaticfinalStringAPP_ID="15742445";publicstaticfinalStringAPI_KEY="LXrztEOzQxfef66DLIDQYpIG";publicstaticfinalStringSECRET_KEY="gbDodnochc8jYjlAHADDgyyas9mrlmkF";@ResponseBody@PostMapping("ocrimg")publicStringocrimg(MultipartFilefile)throwsIOException{HashMapoptions=newHashMap();options.put("language_type","CHN_ENG");//高精度识别一些参数在api文档可以参考//options.put("detect_direction","true");//options.put("detect_language","true");//options.put("probability","true");AipOcrclient=newAipOcr(APP_ID,API_KEY,SECRET_KEY);byte[]bite=file.getBytes();System.out.println(file.getName());System.out.println(file.getOriginalFilename()""file.getResource());JSONObjectjsonObject=client.basicGeneral(bite,options);System.out.println(jsonObject.toString());returnjsonObject.toString();}}

你会发现文件收传如此简单,比用jar包,或者servlet3.0的方法都要简洁很多,查看代码是他把东西都优化封装好了,开箱即用。

编写前端代码:(static下index,html)<formname="myupload"action="ocrimg"method="post"enctype='multipart/form-data'><inputtype="file"name="file"><inputtype="submit"value="提交"></form>进行测试。随意拍一张上一篇

看看控制台的打印:

程序已经完成,对于返回的数据json格式的数组,springboot既然支持json格式返回出去,哪就有相关的jar包可以直接用。如果需要细化,提取json中的数据,那么就研究下封装好json对象的基本语法提取,这里就不做过多详述。

如果对后端、爬虫、数据结构算法等感性趣欢迎关注我的个人公众号交流:bigsai


您需要登录后才可以回帖 登录 | 立即注册

触屏版| 电脑版

技术支持 历史网 V2.0 © 2016-2017