案例已经开源:点击打开链接
如有疑问加 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>
具体代码看案例吧