日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

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

發(fā)布時間:2025/3/20 javascript 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 {//接口申請免費,請自行申請使用,如果學(xué)習(xí)使用可以用下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");//高精度識別一些參數(shù)在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();} }

    你會發(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)容還不錯,歡迎將生活随笔推薦給好友。