js 上传图片并转为base64编码+预览图片+压缩 实例
2018-12-29 13:09
405 查看
js 上传图片并转为base64编码+预览图片+压缩
html部分
<div id="adds" class="fix"> <form id="myForm" class="clearfix left" name="myForm"> <div class="add_click res"> <input type="file" name="pic" id="myFile" accept="image/*"/> </div> </form> </div> <div class="added_pics"></div>
js部分
var uId = localStorage.getItem("uId"); var objUrl; var img_html; var width = $(window).width(); $('#myFile').change(function(){ var file = this.files[0]; var iname = $(this).val(); //后台传值需要 var size = file.size / 1024; //获取文件大小 用来判断是否超过多少kb var URL = window.URL || window.webkitURL; var blob = URL.createObjectURL(file); var image = new Image(); image.src = blob; image.onload = function(){ getUrlBase64(blob,size); }; //将图片转为base64 function getUrlBase64(url,size) { var canvas = document.createElement("canvas" 4000 ); //创建canvas DOM元素 var ctx = canvas.getContext("2d"); var img = new Image; img.crossOrigin = 'Anonymous'; img.src = url; img.onload = function () { var w = this.width,h = this.height,scale = w / h; w = w > 600 ? 600 : w; h = w / scale; canvas.height = h; //指定画板的高度,自定义 canvas.width = w; //指定画板的宽度,自定义 ctx.drawImage(img, 0, 0, w, h); //参数可自定义 if(size > 200){ //判断 如果图片大图200kb就压缩 否则就不压缩 var dataURL = canvas.toDataURL("image/jpeg",0.8); //压缩主要代码 第二个参数表示压缩比例,指为1.0时表示不压缩 }else{ var dataURL = canvas.toDataURL("image/jpeg"); } //显示预览 var img_div = $(".added_pics"); var img_html = '<div class="isImg" data-pic=""><img src="' + dataURL + '" class="chooseImg" /></div>'; img_div.append(img_html); var oFormData = new FormData(); // FormData()方法向后台传值 oFormData.append("uId",uId); oFormData.append("newname",iname); oFormData.append('base64', dataURL); $.ajax({ //上传到后台 url: '/H5/uploadImg.do', type: 'post', data: oFormData, contentType: false, processData: false, success: function(data){ var data=JSON.parse(data); //Do Something alert("上传成功!"); }, error: function(err){ bounce(err); } }); $('.add_click').closest('form').get(0).reset(); canvas = null; }; };
相关文章推荐
- js实现对上传图片的路径转成base64编码,并且对图片进行压缩,实现预览功能
- js上传照片,预览,压缩后base64编码发送后台,及将后台返回的base64图片显示到HTML
- HTML5 JS压缩图片并获取图片BASE64编码上传
- HTML5 JS 压缩图片,并取得图片的BASE64编码上传
- js图片转base64编码压缩上传
- Vue.js 2.0 移动端拍照压缩图片预览及上传实例
- [js实例] input type=file 上传图片预览 createObjectURL
- JS上传前预览图片实例
- js上传图片及预览功能实例分析
- js将图片转为base64编码 && js将base64编码图片转为Blob格式
- 图片压缩,Base64编码后上传服务器
- JS前端上传图片、压缩、并且处理旋转问题,生成base64数据
- vue.js 实现图片本地预览 裁剪 压缩 上传功能
- js压缩上传的图片,并转化为base64字符串传输
- base64编码上传图片java后台接收实例
- js将图片转为Base64上传
- js HTML5多图片上传及预览实例解析(不含前端的文件分割)
- js压缩上传图片并预览
- JS实现图片base64转blob对象,压缩图片,预览图片,图片旋转到正确角度
- JS上传前预览图片实例