写在前面:这里提供一种解决问题思路,跟什么语言无关,可具体问题具体分析;
这里用到的是PHP,框架是Laravel.
//当前时间 $rs['current']=time(); //二维码保存地址 $PNG_WEB_DIR = 'uploads/qr/'; //加载二维码生成类 include "phpqrcode/qrlib.php"; //设置二维码容错等级 $errorCorrectionLevel = 'H'; //生成图片的大小 $matrixPointSize = 4; //扫描二维码访问的地址 - 带上当前访问时间作为唯一标识 $data='http://'.$_SERVER['HTTP_HOST'].'/qr-upload?time='.$rs['current']; //生成二维码文件 // uploads/qr/sfwer9234-98252-359-235.png $filename = $PNG_WEB_DIR.md5($data.'|'.$errorCorrectionLevel.'|'.$matrixPointSize).'.png'; // php 生成二维码类: // 参数介绍: // 第1个参数$text:二维码包含的内容,可以是链接、文字、json字符串等等; // 第2个参数$outfile:默认为false,不生成文件,只将二维码图片返回输出;否则需要给出存放生成二维码图片的文件名及路径; // 第3个参数$level:默认为L,这个参数可传递的值分别是L(QR_ECLEVEL_L,7%)、M(QR_ECLEVEL_M,15%)、Q(QR_ECLEVEL_Q,25%)、H(QR_ECLEVEL_H,30%)这个参数控制二维码容错率,不同的参数表示二维码可被覆盖的区域百分比,也就是被覆盖的区域还能识别; // 第4个参数$size:控制生成图片的大小,默认为4; // 第5个参数$margin:控制生成二维码的空白区域大小; // 第6个参数$saveandprint:保存二维码图片并显示出来,$outfile必须传递图片路径; QRcode::png($data, $filename, $errorCorrectionLevel, $matrixPointSize, 2); //二维码输出路径,获取二维码给前端进行展示 $rs['qr_img']=HTML::image($PNG_WEB_DIR.basename($filename));
{{$qr_img}} //展示二维码 - 一张图片 扫描左侧二维码即可上传照片
//当前访问地址的时间,由后台返回 - 后续用来查图片进行展示 我已上传图片
$rs['time']=Input::get('time'); //获取前端传过来的时间进行过期判断,如果过期返回错误提示{{Form::open(['url'=>URL::current(),'enctype'=>'multipart/form-data','id'=>'cdc'])}}
身份证正面
身份证背面
手持正面
{{Form::hidden('biaoshi',$time)}}
{{Form::close()}}
$("#s1").UploadImg({
url : "/qr-upload.php",
width : "640",
quality : "0.7", //压缩率,默认值为0.7
mixsize : "10000000",
before : function(blob){
$("#i1").html(hh);
},
error : function(d){
$("#i1").html('上传失败请重新上传');
},
success : function(d){
$("#i1").html('');
$("input[name='h1']").val("/"+d);
}
});
//剩余两个省略........public function qrpost(){
$input=Input::all();
$arr['pic1']=$input['h1'];
$arr['pic2']=$input['h2'];
$arr['pic3']=$input['h3'];
$arr['biaoshi']=$input['biaoshi'];
Lice::create($arr);
return Redirect::to('/qrok');
}
$(".ae-uploaded").click(function () {
var biaoshi = $(this).attr("data-biaoshi"); //这里获取的"attr"就是时间唯一标识
var str;
$.ajax({
type: "post",
dataType: "json",
data: {"biaoshi": biaoshi},
url: "/qr-fetch",
success: function (d) {
if(d.flag) {
str = '';
str += '';
str += '';
$(".qr-img").html(str);
$("input[name='package[pic1]']").val(d.file.pic1);
$("input[name='package[pic2]']").val(d.file.pic2);
$("input[name='package[pic3]']").val(d.file.pic3);
$(".uploaded").hide();
}else {
alert("上传失败,请重新在手机上传");
}
}
});
});
//后端代码
public function qrfetch(){
$biaoshi=Input::get('biaoshi');
$info=Lice::where('biaoshi',$biaoshi)->select('pic1','pic2','pic3')->first();
if($info){
return Response::json(['flag'=>true,'file'=>$info]);
}else{
return Response::json(['flag'=>false]);
}
}



