因为最近一段时间,一直在弄微信项目,其中涉及到了证件上传的功能,刚开始的时候一点头绪都没有,上网查了很多资料,QQ群里面也问了不少人,很多人说如果是app程序,可以申请系统权限,然后再去调用系统底层的东西,但是微信是在浏览器里面操作的,我们自定义的页面也是通过微信内置浏览器打开的,而且微信浏览器在内部进行了很多特殊处理,屏蔽了很多东西,所以要在页面调用拍照功能或者是打开手机系统的图库目录是不可能的,当然,这些都只是大伙儿理论上的猜测而已,而在我查了两天的资料之后,发现这个问题原来是可以解决的,而且实现的过程居然也很简单。只是用到了HTML5的file文件上传功能,再配合canvas即可。下面附上源代码:
上传证件...
<script type="text/javascript" src="../js/jQuery/jquery-1.9.1.min.js">
<script type="text/javascript" src="../js/LocalResizeIMG.js">
<script src="../js/mobileBUGFix.mini.js" type="text/javascript">
<script type="text/javascript">
$("input:file").localResizeIMG({
width: 500,quality: 0.8,success: function (result) {
var img = new Image();
img.src = result.base64;
console.log(result.clearBase64);
//$("body").append(img);
$("#result").empty();
$("#result").append(img); //呈现图像(拍照結果)
$.ajax({
url: "upLoadImageServlet",type: "POST",data:{formFile:result.clearBase64},dataType: "HTML",timeout: 1000,error: function(){
alert("Error loading PHP document");
},success: function(result){
//alert(result);
//console.log(result);
alert("Uploads success~")
}
});
}
});