前端上传图片
来源:互联网 发布:淘宝手机店铺怎么开通 编辑:程序博客网 时间:2024/05/22 17:13
前端图片的上传是一个很常见的功能,至于是否先进行压缩则需要具体情况具体分析了。
一、无压缩上传(formdata方式)
html代码
<div class="form-group"><label class="col-sm-4 control-label no-padding-right" for="form-field-tags">商品图片</label><form id="uploadForm1" enctype="multipart/form-data"><input id="file1" type="file" name="pic" style="padding-left: 25px;"/><input id="upload1" type="button" style="margin-left: 25px;" value="上传图片" onclick="formdataUploadImg('上传图片的接口','uploadForm1',pro_data,'img_url')"></form><div class="previewimg previewimg1"></div></div>js代码
//formdata上传图片/*url:接口地址;formid:form表单元素的id;obj:页面对象,obj.ajax将会用作调取有关接口时的参数对象;str:obj.ajax中负责图片参数的参数名*/function formdataUploadImg(url,formid,obj,str){showMask();//显示遮罩层var formdata = new FormData($('#'+formid)[0]);//新建formdata对象$.ajax({url : url,type : 'POST',data : formdata,contentType: false,cache: false,processData: false,success : function(data){console.log(data);if(data.status == '1'){popup(data.msg);//提示消息hideMask();//隐藏遮罩层}else {popup(data.msg);//提示消息hideMask();//隐藏遮罩层obj.ajax[str] = data.result.imgurl1;//图片上传成功服务器后返回图片地址,保存在obj.ajax中,以便后续使用}}})}
html代码
<div class="form-group"><label class="col-sm-4 control-label no-padding-right" for="form-field-tags">商品图片</label><form id="uploadForm1" enctype="multipart/form-data"><input id="file1" type="file" name="pic" onclick="selectImg(this,pro_data.canvasimg)" style="padding-left: 25px;"/><input id="upload1" type="button" style="margin-left: 25px;" value="上传图片" onclick="canvasUploadImg()"></form><div class="previewimg previewimg1"></div></div>js代码
//单击input选项框function selectImg(obj1,obj2) { //选中图片后触发的事件 $(obj1).on("change",function(){ var fr = new FileReader();//创建filereader对象 fr.readAsDataURL(this.files[0]);//将图片文件读取为DataURL var img = new Image();//创建一个图片 fr.onload = function() { img.src = this.result;//result是文件读取的结果 img.onload = function () { obj2.width=img.width;//获取所选择原图的宽 obj2.height=img.height;//获取所选择原图的高 var ratio1 = obj2.width/obj2.height;//判断原图是长图还是扁图 var ratio2,woh; //700是长度为700px if(ratio1 > 1) { ratio2 = obj2.width/700; woh = 'w'; }else if(ratio1 < 1) { ratio2 = obj2.height/700; woh = 'h'; }else{ ratio2 = obj2.width/700; woh = 'woh'; }; obj2.img = img; obj2.ratio = ratio2; obj2.woh = woh; } } });}//点击上传function canvasUploadImg() { if(!$('#file1').val()){ popup('请先选择图片!'); return; }; showMask(); var base64=imageData(pro_data.canvasimg);//获取base64编码值 base64=base64.substring(22);//去除base64编码值前22位无用数据 //var length=$('#img1')[0].files[0].size; putb64(base64);//将图片传到服务器;并将返回的图片地址报存在obj.ajax中,以便后续使用}//使用canvas压缩图片并返回压缩后的base64编码值function imageData(obj) { var canvas = document.createElement('canvas'); if(obj.woh == 'w'){ var w = 700;//图片宽 var h = obj.height/obj.ratio;//图片高 }else if (obj.woh = 'h'){ var h = 700;//图片高 var w = obj.width/obj.ratio;//图片高 }else if(obj.woh = 'woh') { var w = 700;//图片宽 var h = obj.height/obj.ratio;//图片高 } canvas.width = w;//canvas画布的宽 canvas.height = h;//canvas画布的高 var ctx = canvas.getContext('2d'); ctx.drawImage(obj.img, 0, 0, obj.width, obj.height, 0, 0,w,h);//画出图像 return canvas.toDataURL("image/jpg");//返回base64编码 };
阅读全文
0 0
- 前端上传图片oss
- 多图片上传(前端)
- 前端上传图片预览
- 前端上传图片
- 前端上传图片预览
- Web前端上传图片预览
- [前端] 上传图片并显示
- 前端案例--图片上传功能
- 上传图片前端js压缩
- 前端 跨域图片上传
- 七牛云接口--前端上传图片
- 前端实现图片压缩上传
- JS-前端实现图片上传
- 前端实现图片压缩上传
- 前端上传图片到后端
- 前端上传图片那些事
- 前端上传图片并预览图片
- 移动前端—图片压缩上传实践
- 解决Ubuntu下修改mysql open_files_limit 值失效
- linux系统 cpu升到100%
- 第5章 任务和主动对象(Active Object):并发编程模式
- Linux动态频率调节系统CPUFreq之一:概述
- 超级计算机在日常生活中有哪些有趣的应用
- 前端上传图片
- C++(7) 函数重载/operator
- docker学习的一点记录(一)
- Pain Past Is Pleasure.Day-1.
- UnityShader实例16:屏幕特效之径向模糊(Radial Blur)
- 解决Mac上adb: command not found问题
- 后台租车系统
- 《推荐系统实践》附上Reference 中的干货 (Paper,Blog等资料的链接)
- Hubilder的那些坑---下拉/上拉刷新