案例已经开源:点击打开链接
如有疑问加 QQ群联系我:278947305
继上篇说文字识别使用网络图片 这里讲使用本地图片
/**
* 文件上传解析
* @methodsDescription:
* @methodName: rec
* @param file
* @return
* @author: singleton-zw
* @return: R
*/
@RequestMapping(value="/recognLocal" ,method = {RequestMethod.GET,RequestMethod.POST})
@ResponseBody
public R rec(@RequestParam("file") MultipartFile file){
if (file.isEmpty()) {
return R.ok().put("orc","文件不能为空");
}
String path = orc.getUpladfile()+file.getOriginalFilename();
String relst = "";
try {
// 这里只是简单例子,文件直接输出到项目路径下。
// 实际项目中,文件需要输出到指定位置,需要在增加代码处理。
// 还有关于文件格式限制、文件大小限制,详见:中配置。
BufferedOutputStream out = new BufferedOutputStream(
new FileOutputStream(path));
out.write(file.getBytes());
out.flush();
out.close();
byte[] imgData = FileUtil.readFileByBytes(path);
String imgStr = Base64Util.encode(imgData);
relst = URLEncoder.encode("image", "UTF-8") + "=" + URLEncoder.encode(imgStr, "UTF-8");
/**
* 线上环境access_token有过期时间, 客户端可自行缓存,过期后重新获取。
*/
String accessToken = AccessToken.getAuth(orc.getOcrClientId(),orc.getOcrClientSecret());
String result = HttpUtil.post(ConfigURL.OrcUrl, accessToken, relst);
Result fromJson = GsonUtils.fromJson(result, Result.class);
List<Result.Word> data = fromJson.getWords_result();
String w = "";
for (Result.Word word : data) {
w += word.getWords()+"<br>";
}
return R.ok().put("orc", w);
} catch (Exception e) {
e.printStackTrace();
}
return R.ok().put("orc", "失败");
}
在页面中处理文件上传
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<script src="static/js/ajaxupload.js"></script>
</head>
<body>
<div align="center">
<h1>AI文字解析解析</h1>
<hr>
<form name="upform" action="" id="myForm">
<input type="button" value="上传文件解析" id="upload" /><br />
<hr>
<br> 输入图片URL地址:<input type="text" name="urlNet" id="urlNet"
size="100""> <br>
<br> <input type="button" value="网络图片解析" id="url" /><br />
</form>
<div id="tip"></div>
</div>
</body>
<script type="text/javascript" src="static/js/jquery-3.1.1.min.js"></script>
<script type="text/javascript">
new AjaxUpload('#upload', {
action: 'ai/recognLocal',
name: 'file',
autoSubmit:true,
responseType:"json",
onSubmit:function(file, extension){
},
onComplete : function(file, r){
if(r.code == 0){
document.getElementById("tip").innerHTML= r.orc
}else{
document.getElementById("tip").innerHTML="解析失败"
}
}
});
$("#url").click(function () {
$.ajax({
type: "POST", //提交的方法
url:"/ai/recognNet", //提交的地址
data:$('#myForm').serialize(),// 序列化表单值
async: false,
error: function(request) { //失败的话
document.getElementById("tip").innerHTML="解析失败"
},
success: function(data) { //成功
$("#tip").html(data.orc);
}
});
});
</script>
</html>
具体代码看案例吧