有些安卓的微信浏览微网站,不能通过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 } } <input type="file" id="picFile" onchange="readFile(this)" />