生活随笔
收集整理的這篇文章主要介紹了
Springboot文件上传 百度ocr文字识别提取
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
前言
- 在學(xué)習(xí)過程中突然發(fā)現(xiàn)我以前用的文件上傳真的好傻。以前的博客記錄中還沾沾自喜文件上傳模板可以套用,不接收新事物,卻發(fā)現(xiàn)原來Springboot的文件上傳如此簡單。
首先,文件上傳的三種方式,普通文件上傳,多文件上傳,base64碼上傳,但是百度得知base64碼的文件比原文件耗用的資源多意見,這里直接采用普通文件上傳。
步驟
前提:百度ocr需要自行免費申請,在百度云里面自己申請,獲得APP-ID,key和secret的一些必要參數(shù)。
項目環(huán)境:springboot2.0,如果首次使用springboot,請參考以前博客。下面介紹詳細(xì)步驟。
需要在pom.xml中添加:(添加使用百度ocr接口的環(huán)境)
<dependency>
<groupId> com.baidu.aip
</groupId><artifactId>java-sdk
</artifactId><version>4.4.1
</version></dependency>
在application.properties.里面或者yml里面添加關(guān)于文件上傳的支持:
spring
.servlet
.multipart
.enabled
=true
# 上傳文件的臨時目錄 (一般情況下不用特意修改)
#spring
.servlet
.multipart
.location
=
# 上傳文件最大為
1M (默認(rèn)值
1M 根據(jù)自身業(yè)務(wù)自行控制即可)
spring
.servlet
.multipart
.max
-file
-size
=104857600
# 上傳請求最大為
10M(默認(rèn)值
10M 根據(jù)自身業(yè)務(wù)自行控制即可)
spring
.servlet
.multipart
.max
-request
-size
=104857600
# 文件大小閾值,當(dāng)大于這個閾值時將寫入到磁盤,否則存在內(nèi)存中,(默認(rèn)值
0 一般情況下不用特意修改)
spring
.servlet
.multipart
.file
-size
-threshold
=0
# 判斷是否要延遲解析文件(相當(dāng)于懶加載,一般情況下不用特意修改)
spring
.servlet
.multipart
.resolve
-lazily
=false
編寫后臺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");
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();}
}
你會發(fā)現(xiàn)文件收傳如此簡單,比用jar包,或者servlet3.0的方法都要簡潔很多,查看代碼是他把東西都優(yōu)化封裝好了,開箱即用。
編寫前端代碼:(static下index,html)
<form name="myupload" action="ocrimg" method="post" enctype='multipart/form-data'>
<input type="file" name="file" >
<input type="submit" value="提交">
</form>
進(jìn)行測試。
隨意拍一張上一篇
-
看看控制臺的打印:
-
程序已經(jīng)完成,對于返回的數(shù)據(jù)json格式的數(shù)組,springboot既然支持json格式返回出去,哪就有相關(guān)的jar包可以直接用。如果需要細(xì)化,提取json中的數(shù)據(jù),那么就研究下封裝好json對象的基本語法提取,這里就不做過多詳述。
-
如果對后端、爬蟲、數(shù)據(jù)結(jié)構(gòu)算法等感性趣歡迎關(guān)注我的個人公眾號交流:bigsai
總結(jié)
以上是生活随笔為你收集整理的Springboot文件上传 百度ocr文字识别提取的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。