前端页面:
<form id="kycForm" enctype="multipart/form-data">
<input type="hidden" id="hid" name="idPhotoUrl" value=""/>
<input type="hidden" id="hid2" name="idPhotoUrl2" value=""/>
<div class="first-key">
    <div> <img src="背景图片路径" alt="" style="width: 100%;height: 100%;margin-top:.3rem;"></div>
<img id="img1" class="img" src="上传按钮样式图片路径" alt=" " >
<input type="file" class="file" placeholder="ICCID" id="fil" name="photo1" accept="img/*" capture="camera">
<span style="margin-top: .5rem;z-index: 99">上传身份证正面照</span> </div>
<div class="first-key">
<div> <img src="背景图片路径" alt="" style="margin-top: .3rem;width: 100%;height: 100%;"></div>
<img id="img2" class="img" src="上传按钮样式图片路径" alt="">
<input type="file" class="file" placeholder="ICCID" id="fil2" name="photo2" accept="img/*" capture="camera">
<span style="margin-top: .5rem">手持身份证反面照</span>
</div>
<div class="btn-center">
<button type="button" id="btn-go" class="btn btn-primary" >提交审核</button>
</div>
</form>

<script>
$(".first-key").on("change", "input[name=photo1]", function() {
$(this).prev().css("opacity","1")
var filePath = $(this).val();//读取图片路径
//将图片的URL赋值与hidden标签内
var fr = new FileReader();//创建new FileReader()对象
var imgObj = this.files[0];//获取图片
fr.readAsDataURL(imgObj);//将图片读取为DataURL
var obj = $(this).prev()[0];//
var arr = filePath.split('\\');
var fileName = arr[arr.length - 1];
$("#img1").removeClass("img");
$("#img1").addClass("img2");
$(this).parent().next().show();
fr.onload = function() {
obj.src = this.result;
//将base64编码后的图片赋值到hidden标签内
$("#hid").val(obj.src);
};
});
$(".first-key").on("change", "input[name=photo2]", function() {
$(this).prev().css("opacity","1")
var filePath = $(this).val();//读取图片路径
//将图片的URL赋值与hidden标签内
var fr = new FileReader();//创建new FileReader()对象
var imgObj = this.files[0];//获取图片
fr.readAsDataURL(imgObj);//将图片读取为DataURL
var obj = $(this).prev()[0];//
var arr = filePath.split('\\');
var fileName = arr[arr.length - 1];
$("#img2").removeClass("img");
$("#img2").addClass("img2");
$(this).parent().next().show();
fr.onload = function() {
obj.src = this.result;
//将base64编码后的图片赋值到hidden标签内
$("#hid2").val(obj.src);
};
});
console.log($("#hid2").val());
</script>

后端代码:
//对字节数组字符串进行Base64解码并生成图片
if (idPhotoUrl == null || idPhotoUrl2 == null) { //图像数据为空
success(false);
}
BASE64Decoder decoder = new BASE64Decoder();
byte[] b =new byte[0] ;
if(idPhotoUrl.contains("data:image/png;base64")){
//Base64解码
b=decoder.decodeBuffer(idPhotoUrl.replace("data:image/png;base64,", ""));
}
if(idPhotoUrl.contains("data:image/jpeg;base64")){
//Base64解码
b=decoder.decodeBuffer(idPhotoUrl.replace("data:image/jpeg;base64,", ""));
}
//idPhotoUrl = idPhotoUrl.replace("data:image/jpeg;base64,", "");
for (int i = 0; i < b.length; ++i) {
if (b[i] < 0) {//调整异常数据
b[i] += 256;
}
}
//生成jpg图片
Properties prop = new Properties();
InputStream ins = this.getClass().getResourceAsStream("/config/photoUrl.properties");
prop.load(ins);
String imgFilePath = prop.getProperty("PHOTOURL") + UUID.randomUUID() + ".jpg";//新生成的图片
OutputStream out = new FileOutputStream(imgFilePath);
out.write(b);
out.flush();
out.close();
user.setIdPhotoUrl(imgFilePath);
byte[] b2 =new byte[0] ;
if(idPhotoUrl2.contains("data:image/png;base64")){
//Base64解码
b2=decoder.decodeBuffer(idPhotoUrl2.replace("data:image/png;base64,", ""));
}
if(idPhotoUrl2.contains("data:image/jpeg;base64")){
//Base64解码
b2=decoder.decodeBuffer(idPhotoUrl2.replace("data:image/jpeg;base64,", ""));
}
//idPhotoUrl = idPhotoUrl.replace("data:image/jpeg;base64,", "");
for (int i = 0; i < b2.length; ++i) {
if (b2[i] < 0) {//调整异常数据
b2[i] += 256;
}
}
//生成jpg图片
String imgFilePath2 = prop.getProperty("PHOTOURL") + UUID.randomUUID() + ".jpg";//新生成的图片
OutputStream out2 = new FileOutputStream(imgFilePath2);
out2.write(b2);
out2.flush();
out2.close(); user.setIdPhotoUrl2(imgFilePath2);

properties文件:
     PHOTOURL=想放的文件夹绝对路径
												

前端上传图片回显并用base64编码,后端做解码储存,存储图片路径在.properties文件中配置(以上传身份证照片为例)的更多相关文章

  1. SpringMVC+HibernateValidator,配置在properties文件中的错误信息回显前端页面出现中文乱码

    问题: 后台在springMVC中使用hibernate-validator做参数校验的时候(validator具体使用方法见GOOGLE),用properties文件配置了校验失败的错误信息.发现回 ...

  2. WebUploader 上传图片回显

    /* fileMaxCount 最大文件数 buttonText 按钮文本 multiple 是否多选 */ (function ($) { $.fn.extend({ uploadImg: func ...

  3. ueditor1.4.3jsp版成功上传图片后却回显不出来与在线管理显示不出图片的解决方案

    这是因为路径问题,可以在jsp/config.json这个文件去改路径 通过“imageUrlPrefix”与“imagePathFormat”这两个属性去拼凑路径. “imageUrlPrefix” ...

  4. Kindeditor上传图片回显不出来

    原因之一: 图片成功上传但是回显不出来,这个时候,要检查返回的图片地址是否加了http://这个玩意,不然会将原来的头加上图片返回地址.

  5. layui 上传图片回显并点击放大实现

    1.页面代码布局 <div class="layui-col-xs12 form-group"> <div class="layui-col-xs6&q ...

  6. Nginx搭建后,图片存储在Tomcat上,前端无法回显图片问题

    一.Nginx与Tomcat连接搭建的环境,Nginx设置了前端的访问路径为 (1)前端代码配置: root /usr/local/nginx/html; index index.html index ...

  7. js实现上传图片回显功能

    用到h5技术 <img id="headimg" src="<%=path%>/resources/images/icon4.png" sty ...

  8. js上传图片回显

    $("#file01").change(function(){ var objUrl = getObjectURL(this.files[0]) ; console.log(&qu ...

  9. php 图片base64编码生成dataurl和保存为图片

    <?php header('Content-type:text/html;charset=utf-8'); //读取图片文件,转换成base64编码格式 $image_file = 'aaa.j ...

随机推荐

  1. vue兄弟组件传递信息

    bus方式的组件间传值其实就是建立一个公共的js文件,专门用来传递消息 新建一个Bus.js两个组件都需要引用 组件A 通过$emit传递信息 组件B $on接收

  2. 解决Eclipse中.properties文件中文乱码问题

    在.properties文件写注释时,发现中文乱码了,由于之前在idea中有见设置.properties文件的编码类型,便找了找乱码原因 在中文操作系统中,Eclipse中的Java类型文件的编码的默 ...

  3. [线段树]HDU-1754板子题入门ver

    HDU-1754 线段树数组请开到四倍 众所周知数组开小会导致re tle wa等一系列问题orz 板子就是板子,数组从零开始或是从一开始都没什么问题,就是2*root+1还是2*root+2的问题. ...

  4. Mysql 源码:关于innodb中两次写的探索

    转载自:http://www.cnblogs.com/bamboos/p/3553703.html?utm_source=tuicool&utm_medium=referral 两次写可以说是 ...

  5. 最小生成树 HDU1301 (kuskal & prim)

    Kruskal:1.边排序,2.按边从小到大连接森林至树   3.并查集 #include <stdio.h> #include <stdlib.h> #include < ...

  6. asp.net webAPI POST方法的CORS跨域问题

    端口不同会判断为不同域 Method Not Allowed . web.config中设定·customHeaders 错误变化为 原因‘ post方法使用前会有一次OPTION方法的请求’ 解决: ...

  7. egret 简单的一笔画算法,在wing中可以直接跑(以后玩这类游戏就有个作弊器了)

    /** * 在Main中创建游戏场景 * Create a game scene */ private createGameScene() { MtwGame.Instance.init(this.s ...

  8. Blinn-Phong模型

    最近在看基础光照模型,比较感兴趣的是高光反射模型,有下列两种: 1.Phong模型 R = 2*N(dot(N, L)) - L specular = lightColor * SpecularCol ...

  9. nim读写注册表的小例子

    nim读写注册表的小例子 2018年5月7日 15:11:58 codegay 贴一个nim读写注册表的例子,虽然简单,但是nim官方没有写windows注册表相关的文档, 我贴的例子兴许能帮大家省点 ...

  10. 无线局域网(WLAN)

    无线局域网根据结构可以分为两大类:有固定基础设施的无线局域网和无固定基础设施的局域网. 有固定基础设施是指网络中已经预先存在了一批固定的数据处理和转发设备,这些固定设备可以通过有线方式连接其他网络或 ...