前端页面:
<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. gat和post封装代码

    from urllib import request, parsefrom urllib.error import HTTPError, URLError def get(url, headers=N ...

  2. python小总结4(文件)

    一.读文件 过程: a.打开文件:open() b.读取文件内容:read() readline() readlines() c.关闭文件:close() open(path,flag,encodin ...

  3. [数]昨天欠下的一道立体几何题HDU-4741

    并没有做到这道题,后来听学长说了题意,总之就是立体几何嗯 看了好几份题解,是的我知道是异面线段的距离了,可是看码完全不明orz. 这时候出现了一份清晰易懂甚至给出了公式来源的blog╰(*°▽°*)╯ ...

  4. 【转载】用实例给新手讲解RSA加密算法

    实践文章:https://mp.weixin.qq.com/s/dCQ17NKWu5ISc-eNhFDlvw 原文地址:http://bank.hexun.com/2009-06-24/1189585 ...

  5. java基本类型和数字类及其相关计算

    --- java 八大基本类型 byte  short int long double float boolean char --对应的包装类 Byte Short Integer Long Doub ...

  6. node.js学习二---------------------同步API和异步API的区别

    /** * node.js大部分api都有同步的方法,同步方法名后面都会带有Sync,js编译的时候,同步代码会立即执行,异步代码会先存到异步池中,等同步代码执行完后它才会执行异步:不会阻塞线程,没有 ...

  7. Ubuntu每次启动都显示System program problem detected

    执行命令:sudo gedit /etc/default/apport 将enabled=1改为enabled=0保存退出

  8. web项目中web.xml简介

    什么是 XML? XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输数据,而非显示数据 XML 标签没 ...

  9. wps实现自动编码

    1.打开wps,点击“开始”菜单,选择“标题1”样式,右键选择“修改样式” 2.在修改样式界面,左键点击“格式”选择“编号”选项 3.在打开的界面选择“多级编码”,选中一个样式,点击“自定义”按钮 4 ...

  10. Qt的类:qfileinfogatherer

    这篇文章中,探索Qt中的类qfileinfogatherer类,先给出私有类头文件.我们先想一想要形成一个信息采集者,需要什么?需要一个线程,当文件信息发生变化的时候,作为一个槽来接收信号. 先预备一 ...