有些安卓的微信浏览微网站,不能通过file上传文件、图片,但是ios系统的都是可以上传图片。
传统的通过 $_FILES 方式上传在微信浏览器下失败。
这里可以换个思路:
我们可以先现将图片转成base64的字符,在把字符通过POST方式上传给服务器,在服务器端把POST过来的base64字符,还原出图片保存在服务,完成图片上传过程。
html5有个功能就可以将图片转换base64,那就是FileReader。
实现:
function readFile(obj){
var file = obj.files[0];
//判断类型是不是图片
if(!/image\/\w+/.test(file.type)){
alert("请确保文件为图像类型");
return false;
}
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function(e){
alert(this.result); //就是base64
}
}