zoukankan      html  css  js  c++  java
  • 签字文件的保存逻辑

    1.签字流程简述:

    1.1页面通过签字版程序签字生成二进制数据 传给前端属性值signatureData  ,

    1.2再通过signatureData表单提交,加入缓存数据中,

    1.3页面再通过缓存取数据显示

    1.4在登记台排号或者接种台接种完成时,再从缓存中取出数据并保存到数据库;

    2.后端:

    2.1两种情况

    2.1.1第一种是前端传过来数据(保存逻辑):

    2.1.1.1 页面展示

     

    2.1.1.2签字确认

    //确认
    function signComplete() {
           hWIsConfirm_onclick();
           $("#inputForm").submit();
    }

    2.1.1.3 是否可保存逻辑

    //是否可保存
        function hWIsConfirm_onclick() {
           var ret;
           ret = obj.HWIsConfirm();
           switch(res){
                case 0:
                  hWGetBase64Stream_onclick();
                  break;
                case -5:
                  alert("用户未签字");
                  break;
                case -10:
                  alert("用户未确认");
                  break;
                case -6:
                  alert("无效输入");
                  break;
            }
        }

    2.1.1.4 保存返回二进制数据给 signatureData

     

    2.1.1.5 最后表单提交保存到缓存,如果点击完成再保存到数据库

    2.1.2第二种情况后端缓存取数据,前端展示:

    前端展示有两种方式

        1)拿到数据展示

    app.signData = "data:image/png;base64," + data.data[app.reminds[j]];
    <img style=" 200px;" :src="signData">
    2)通过结果拿到流展示
    <img src="<%=request.getContextPath()%>/toolUtil/getPhoto_Blob.xhtml?id=1" width="128" height="185"/>
    @RequestMapping("/toolUtil/")
    public class ToolUtil{
        @AutoWired
        private ToolUtilManager toolUtilManager;//持久层
        /**
         * 获取图片
         * @param request
         * @param response
         */
        @RequestMapping("getPhoto_Blob")
        public void getPhoto_Blob(HttpServletRequest request,HttpServletResponse response){
            String id = request.getParameter("id");
            //这个我就不详细写了,就是通过传递的id查询你要显示的图片
            Map resultMap = toolUtilManager.getPhoto_Blob(id)
            //blob就是你要显示的那张图片
            Blob blob = (Blob) resultMap.get("Photo");
            InputStream in = null;
        try {
            in = blob.getBinaryStream();
            OutputStream out = response.getOutputStream();
                data = new byte[(int)blob.length()];
                int i = 0;
            while((i=in.read(data))!=-1){
               out.write(data);
            }
            out.close();
            in.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        }
         
    }
    后端从缓存中取数据
    Object signObjVaccid = CacheUtils.get(CacheUtils.SIGN_CACHE, childVaccinaterecord.getChildid() + "_" + childVaccinaterecord.getNid().substring(0, 2)); if (signObj == null) { signObj = signObjVaccid; } String signStr = (String) signObj; BASE64Decoder decoder = new BASE64Decoder(); byte[] sign = decoder.decodeBuffer(signStr);

    // 新增签字
    childVaccinaterecordService.insertSignatures(childVaccinaterecord);
    xml
    xml中:(blob字段对应java的 byte[]类型,可以直接保存)
    <insert id="insertSignatures">
    INSERT INTO BS_CHILD_SIGNATURE(
    id,
    signature,
    stype
    ) VALUES (
    #{id},
    #{signatureData},
    #{stype}
    )
    </insert>
  • 相关阅读:
    BigBlueButton的安装
    Css学习总结(3)——CSS布局解决方案
    Git学习总结(14)——Git使用前的注意事项
    Java基础学习总结(83)——Java泛型总结
    ios-ASIHTTPRequest的Reachability可以监听网络,网络出现状况来不同的处理
    ios-ASIHTTPRequest下载与进度条以及用观察者模式来监听进度条属性
    iOS 常用英语翻译
    ZT 类模板的声明和实现是不能分离的
    ZT Shell 排序
    Java基础 之软引用、弱引用、虚引用 ·[转载]
  • 原文地址:https://www.cnblogs.com/banxian-yi/p/10790445.html
Copyright © 2011-2022 走看看