前言

  • 在学习过程中突然发现我以前用的文件上传真的好傻。以前的博客记录中还沾沾自喜文件上传模板可以套用,不接收新事物,却发现原来Springboot的文件上传如此简单。
    首先,文件上传的三种方式,普通文件上传,多文件上传,base64码上传,但是百度得知base64码的文件比原文件耗用的资源多意见,这里直接采用普通文件上传。

步骤

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

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

  1. 需要在pom.xml中添加:(添加使用百度ocr接口的环境)
 <dependency>
<groupId> com.baidu.aip</groupId><artifactId>java-sdk</artifactId><version>4.4.1</version></dependency>
  1. 在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
  1. 编写后台controller:OCRcontroller:
import com.baidu.aip.ocr.AipOcr;
import org.json.JSONObject;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;import java.io.IOException;
import java.util.HashMap;
import java.util.Map;@Controller
public class OCRController {//接口申请免费,请自行申请使用,如果学习使用可以用下public static final String APP_ID = "15742445";public static final String API_KEY = "LXrztEOzQxfef66DLIDQYpIG";public static final String SECRET_KEY = "gbDodnochc8jYjlAHADDgyyas9mrlmkF";@ResponseBody@PostMapping("ocrimg")public String ocrimg(MultipartFile file) throws IOException {HashMap options = new HashMap();options.put("language_type", "CHN_ENG");//高精度识别一些参数在api文档可以参考
// options.put("detect_direction", "true");
// options.put("detect_language", "true");
// options.put("probability", "true");AipOcr client=new AipOcr(APP_ID,API_KEY,SECRET_KEY);byte [] bite=file.getBytes();System.out.println(file.getName());System.out.println(file.getOriginalFilename() " " file.getResource());JSONObject jsonObject=client.basicGeneral(bite,options);System.out.println(jsonObject.toString());return jsonObject.toString();}
}

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

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


  • 看看控制台的打印:

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

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

Springboot文件上传 百度ocr文字识别提取相关推荐

  1. 百度OCR文字识别API使用心得 com.baidu.ocr.sdk.exception.SDKError[283604]

    百度OCR文字识别API使用心得 com.baidu.ocr.sdk.exception.SDKError[283604] 本文转载自好基友upuptop:https://blog.csdn.net/ ...

  2. Java调用百度OCR文字识别的接口

    调用百度OCR文字识别的接口,来自于百度官网,亲测可以使用 跳转链接 FileUtil的下载链接 Base64Util下载链接 HttpUtil下载链接 GsonUtils下载链接 Accurate. ...

  3. SpringBoot 文件上传 通过Content-Type和文件头判断文件类型

    SpringBoot 文件上传 通过Content-Type和文件头判断文件类型 一.关于MIME MIME的全称是Multipurpose Internet Mail Extensions,即多用途 ...

  4. Java调用百度OCR文字识别API实现图片文字识别软件

    java_baidu_ocr Java调用百度OCR文字识别API实现图片文字识别软件 这是一款小巧方便,强大的文字识别软件,由Java编写,配上了窗口界面 调用了百度ocr文字识别API 识别精度高 ...

  5. UIPATH 调用第三方接口(百度OCR文字识别举例)

    业务场景: 使用RPA获取业务系统网站的验证码截图,将截图转base64之后传到百度OCR文字识别接口,获取文字识别结果,将识别结果用作登陆业务系统的验证码凭证.从而解决RPA自动登录系统的问题. 设 ...

  6. java ocr api_Java调用百度OCR文字识别API实现图片文字识别软件

    Java调用百度OCR文字识别API实现图片文字识别软件 原创isinple 发布于2019-01-06 13:35:59 阅读数 1296 收藏 展开 java_baidu_ocr Java调用百度 ...

  7. 百度OCR文字识别-Android安全校验

    百度OCR文字识别-Android安全校验 本文转载自好基友upuptop:https://blog.csdn.net/pyfysf/article/details/86438769 效果图: 如下为 ...

  8. android百度识别,百度OCR文字识别-Android安全校验

    效果图: 如下为文章正文: 百度OCR接口使用总结: 之前总结一下关于百度OCR文字识别接口的使用步骤(Android版本 不带包名配置 安全性弱).这边博客主要介绍,百度OCR文字识别接口,官方推荐 ...

  9. python(自动化)利用selenium+百度ocr文字识别验证码实现自动登陆登陆CET-四级报名系统

    操作步骤: 1:登陆打开CET-考试系统 2:填写相关登陆信息 3:调用百度ocr实现文字验证码识别 4:实现登陆 如何使用和调用百度ocr文字识别接口 1:进入百度AI开发平台:链接 2:在页面上选 ...

最新文章

  1. m-orchastration system
  2. 将 Shiro 作为一个许可为基础的应用程序 五:password加密/解密Spring应用
  3. Programming Computer Vision with Python (学习笔记九)
  4. DL之GAN:生成对抗网络GAN的简介、应用、经典案例之详细攻略
  5. PPO-强化学习算法
  6. ElasticSearch index 剖析
  7. SSH基本原理和免密码登录
  8. nodejsmongoangularjs
  9. shell发送邮件函数
  10. mysql二分法查找亿行_算法——二分法查找(binarySearch)
  11. 解决微信插件wxparse图片大小不能改变的问题
  12. bootstrap+javascript制作体重标准计算器
  13. 面向对象周总结1030
  14. 【工业革命】第四次工业革命:自主经济的崛起
  15. [oeasy]python0131_[趣味拓展]各种符号_汉语拼音符号_中文全角英文字母_中文全角标点
  16. Android开发该学习哪些东西?
  17. python os.urandom()函数和十六进制\xhh的一些认识
  18. 欧几里德 与 扩展欧几里得 学习笔记
  19. 备战秋招,LeetCode算法大总结,啃下这块硬骨头
  20. 不登录系统运行服务器,服务器开机不登录可以远程吗

热门文章

  1. 微众WeCross 跨链平台(11)系统总结
  2. C++ Primer 5th笔记(chap 15 OOP)派生类的拷贝控制成员
  3. C++ Primer 5th笔记(chap 14 重载运算和类型转换)标准库函数对象
  4. C++ Primer 5th笔记(chap 14 重载运算和类型转换)算术和关系运算符
  5. 学生管理系统(C++)
  6. buu Dangerous RSA
  7. Android锁机样本分析
  8. 【网络安全】一次应急实战经验思路分享
  9. 4、MySQL创建数据库(CREATE DATABASE语句)
  10. Python爬虫学习获取腾讯新闻并存入Csv文件