java实现电子签名技术_h5实现电子签名
前端需要引入:jSignature.min.js ,jquery-1.9.1.min.js
前端 部分写法:
body内加
Js :
$(document).ready(function() {
var arguments = {
width: '100%',
height: '40%',
color:'#000',
"decor-color": "transparent",//去除默认画布上那条横线
lineWidth: '3'
};
$("#signature").jSignature(arguments);
});
//重写
function btnCleanUp(){
$("#signature").jSignature("clear");
$("#img").attr("src", "");
}
//保存为图片
function btnGenerateImg() {
if( $("#signature").jSignature('getData', 'native').length === 0) {
alert("请签名后再保存图片!");
return;
}
var sig = $("#signature").jSignature('getData');
$("#img").attr("src", sig);
}
//上传到服务器
function btnUpload(){
if( $("#signature").jSignature('getData', 'native').length === 0) {
alert("请签名后再提交!");
return;
}
var datapair = $("#signature").jSignature("getData", "image");
$.ajax({
url:'https://xxxx/upload',
data:{"imgStr":datapair[1]},
type:'POST',
success:function (data){
alert(data);
},
error:function (data){}
});
}
java 后台实现:
@RequestMapping("/upload")
@ResponseBody // imgStr就是前台发送的data[1]
public String upload(HttpServletRequest request){
try{
String imgStr=request.getParameter("imgStr");
if(StringUtils.isBlank(imgStr)){
return new RespBody(RespBody.Status.ERROR, "未找到需要保存的图片内容");
}
// 文件名称
String s = PKGenerator.generateId();
String fileName = s + ".png";
// 获取路径
String ctxPath = "D:autograph/";
// 创建文件
File dirPath = new File(ctxPath);
if (!dirPath.exists()) {
dirPath.mkdirs();
}
//Base64解码,生成.png图片
BASE64Decoder decoder = new BASE64Decoder();
byte[] decoderBytes = decoder.decodeBuffer(imgStr);
FileOutputStream out = new FileOutputStream(new File(ctxPath+fileName));
out.write(decoderBytes);
out.close();
return fileName; // 返回保存后的文件名称
} catch (Exception e){
logger.error("上传保存图片时报错:{}",e);
return "上传保存图片失败。";
}
}
效果:
java实现电子签名技术_h5实现电子签名相关推荐
- 区块链电子签名技术及方案
数字签名技术是电子签名的底层核心技术,由非对称密钥加密技术和数字摘要技术构成.首先发送方利用Hash函数对文件内容进行加密并生成数字摘要,然后利用私钥对数字摘要加密形成数字签名;接收方利用发送方提供的 ...
- 原笔迹电子签名是不是可靠的电子签名方式?
01 电子签名法相关规定 随着2020年"十四五"规划的提出,发展数字经济.推进数字产业化和产业数字化得以明确,数字经济成为国内经济高质量发展的新动能.作为数字经济基础能力之一的电 ...
- [JAVA EE] JPA技术基础:完成数据列表的删除
接上一篇:[JAVA EE] JPA技术基础:完成数据列表显示 本章完成数据列表的删除 修改 UserController.java package com.example.demo.controll ...
- Oracle字符串转BooIean,利用Java的多线程技术实现数据库的访问.pdf
利用Java的多线程技术实现数据库的访问.pdf 第 卷第 期 计算机应用 22 12 Voi .22 , No . 12 年 月 2002 12 Computer Appiications Dec ...
- Java多线程并发技术
Java多线程并发技术 参考文献: http://blog.csdn.net/aboy123/article/details/38307539 http://blog.csdn.net/ghsau/a ...
- Android Java虚拟机拦截技术分析
2019独角兽企业重金招聘Python工程师标准>>> 最近反编译金山毒霸,分析其广告拦截功能是如何实现的.根据金山毒霸的介绍,采用了java虚拟机拦截技术,带着好奇去研究了一下.在 ...
- java超线程_超线程多核心下Java多线程编程技术分析
在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,本文主要讲述超线程多核心下Java多线程编程技术分析,更多Java专业知识,广州疯狂 ...
- Java学习---RMI 技术分析[Hessian]
一.什么是Hessian Hessian 是一个基于 binary-RPC 实现的远程通讯 library.使用二进制传输数据.Hessian通常通过Web应用来提供服务,通过接口暴露.Servlet ...
- Java 动态调试技术原理及实践
调试是发现和减少计算机程序或电子仪器设备中程序错误的一个过程.最常用的断点调试技术会在断点位置停顿,导致应用停止响应.本文将介绍一种Java动态调试技术,希望能对大家有帮助.同时也欢迎读者朋友们一起交 ...
- Java开发与技术挑战——关于技术的技术思考
Java开发与技术挑战--关于技术的技术思考 width="22" height="16" src="http://hits.sinajs.cn ...
最新文章
- 网络嗅探混杂模式与非混杂模式的区别
- 好用的侧边栏菜单/面板jQuery插件
- 寻找免费的阿里云云盾隐秘购买入口,申请并下载ssl证书(https证书)的详细步骤
- 在Spring Boot中使用@Scheduled实现定时任务
- alter table add column多个字段_ElementUI表格el-table表头固定自适应高度解决方案
- 神经网络——BP算法
- java.lang.Object android.content.Context.getSystemService(java.lang.String)‘ on a null object
- Security+ 学习笔记28 云计算
- 交出20分钟后就得到面试通知的一份答卷
- idm无法连接到目标服务器的解决办法
- 通俗易懂的方式讲解最大流和最小割问题
- 教你划分必要开支和非必要开支
- 电子计算机主机房国标,中华人民共和国国家标准电子计算机机房设计规范GB50174-93...
- php rrd graph,使用lvs-rrd工具监控存储lvs状态信息
- 《最强大脑:魔方墙找茬王郑才千的学神秘笈-郑才千》-读书笔记
- メリッサ / 梅莉莎
- 旋转卡壳简介(POJ2187)(洛谷P1452)
- IE6/IE7 /IE8/Firefox/Chrome/Safa…
- cookies设置,获取和清除
- Android tint颜色渲染
热门文章
- 恢复视力的方法(飞行员都用)治近视的秘方!1000度近视降到只有200
- 5G技术在广播电视中的应用方式
- 南安普顿大学人工智能硕士课程
- 治疗骨髓增殖性肿瘤的一种新型高选择性酪氨酸激酶抑制剂ZT55的研究
- mysql计算连续天数,mysql连续登录天数,连续天数统计
- Self-Attention with Relative Position Representations(2018)
- Tensorflow学习-自定义模型
- [论文笔记]Feature-constrained Active Visual SLAM for Mobile Robot Navigation
- unity 控制对象移动、旋转
- logo设计-中文设计