介绍
小编给大家分享一下使用H5做出上传图片功能的方法,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!
& lt;输入类型=癴ile"在
btoa (“javascript");//癮mF2YXNjcmlwdA==? atob (“amF2YXNjcmlwdA==?;//癹avascript"
btoa (encodeURIComponent(“我喜欢javascript"));//癑UU2JTg4JTkxJUU1JTk2JTlDJUU2JUFDJUEyJTIwamF2YXNjcmlwdA==? decodeURIComponent (atob (“JUU2JTg4JTkxJUU1JTk2JTlDJUU2JUFDJUEyJTIwamF2YXNjcmlwdA==?);//拔蚁不秊avascript" FormData:
<代码> Blob 代码>
& lt; !DOCTYPE html> & lt; html lang=癳n"祝辞 & lt; head> & lt;元charset=癠TF-8"祝辞 & lt;元名称=皏iewport"内容=翱矶?设备宽度,初始=1.0,最大范围=1.0,user-scalable=0“比; & lt; title> Document https://www.yisu.com/zixun/& lt;脚本src=" http://apps.bdimg.com/libs/zepto/1.1.4/zepto.min.js "> 脚本> 头 <时尚> .uploadPic { 宽度:92%; 位置:相对; 保证金:0汽车; 高度:2.8快速眼动; 行高:2.8快速眼动; 字体大小:1.3快速眼动; border - radius: 4 px; 颜色:# fff; text-align:中心; background - color: # 72 bcc5; } .uploadPic>输入{ 位置:绝对的; 显示:块; 宽度:100%; 高度:100%; 右:0; 上图:0; 透明度:0; } .uploadPic> img { 边界:没有; }> 风格 身体<>拍摄
<进程id=敖健眝alue=" 0 " max=" 100 "风格="宽度:100%;"> 进展>
身体> <脚本> 上传功能(文件、回调){ var加载=0; var总=file.size; 如果(window.FileReader) { $(" #进步”)[0]value=0; var fileReader=new fileReader (); fileReader。onload=function () { console.log (fileReader.readyState);//读取完成 compressPic (this.result回调) }; fileReader。onerror=function () { console.log (fileReader.error); }; fileReader。onprogress=function (e) { console.log (fileReader.readyState);//读取中 加载+=e.loaded; $(" #进步”)[0]。值=(加载/总数)* 100; } console.log (fileReader.readyState);//未读取 fileReader.readAsDataURL(文件) 其他}{ alert("您的浏览器不支持FileReader”); } } 函数base64ConvertToBlob (picData、类型、大小){ 类型=| | "; 尺寸大?| | 512; var decodeFileData=atob (picData);//此处用atob解码,转码函数btoa。在使用方法时注意操作中文时,需对中文decodeURIComponent转换 var dataArray=[]; var len=decodeFileData.length; (var=0;我<兰;我+=大小){ var pieceData=decodeFileData。片(我+大小);//这里做了一个512的分组 var arr=new Array (pieceData.length); (var j=0;j标准| |高度>标准){ var=数学。马克斯(宽/标准,高度/标准); 宽/=率; 高度/=率 } 画布var=document.createElement(“画布”); 画布。宽度=宽度; 画布。身高=身高; var=canvas.getContext上下文(2 d); 上下文。fillRect(0, 0,画布。宽度,canvas.height); 上下文。drawImage (img, 0, 0,宽度、高度); var data=画布。toDataURL(“图像/jpeg ", 1);//var blobData=base64ConvertToBlob (data.replace (^ . * ?," ")/图像/jpeg)//- - - - - -需要去掉符号,不然使用atob方法报的错//doAjax(新FormData () .append(“形象”,数据));//后续可以这样做,转换成Blob字段,组装FormData,发送至后台 控制台。日志(“画布压缩后大小:”+ data.length); 回调(数据) }; img.src=picData; 控制台。日志(“画布conpress大小:”+ picData.length); } $ (" # uploadPic输入”).change(函数(){ var文件=this.files [0]; 上传(文件,函数(picData) { $ (" # uploadPic img”) [0]。src=picData;//预览 } ); });> 使用H5做出上传图片功能的方法