JavaScript图片压缩上传
来源:互联网 发布:万能游戏透视软件 编辑:程序博客网 时间:2024/05/29 17:56
采用lrz.bundle.js进行图片压缩
场景:手机端上传的图片都是2M以上,我的手机像素很高通常在5M以上,有的甚至将近10M。这对服务器的带宽带来很大的压力。用户在使用过程中响应的时间长(用户会认为手机卡死)。
为了解决这一问题,我们需要先将图片压缩后再进行上传到服务器。
步骤:1、引入js文件
<script src="js/lrz.bundle.js"></script>
图1
注意:lrz.bundle.js需要引入到页面中,图1中其他的js文件也需要放在与lrz.bundle.js相同的目录下。
如果没有其他的文件,兼容性会出现问题。本人曾经踩过这个坑。在PC端功能正常,手机浏览器功能也正常,但是从微信进入页面功能就
不好使了,查看lrz.bundle.js的源码发现在这个js文件中引用了其他的js。把另外的文件放到此目录后,微信端功能好使。
2、html上传文件标签代码
<input type="file" id="image" name="image">
3、js代码
$('#image').change(function(){layer.load(1, {shade : "#000"});var that = this;lrz(this.files[0]).then(function (rst) {//压缩之前的文件大小sourceSize = (that.files[0].size / 1024).toFixed(2);//压缩后的文件大小resultSize = (rst.fileLen / 1024).toFixed(2);//压缩率scale = parseInt(100 - (resultSize / sourceSize * 100));console.log('sourceSize:'+sourceSize+' resultSize:'+resultSize+' scale:'+scale); console.log('压缩后大小为:'+resultSize+'K 压缩率:'+scale+'%');//上传方法uploadPositive(rst,rst.formData); // 处理成功会执行}).catch(function (err) {console.log(err);});});//上传方法function uploadPositive(rst, formData){if(!formData){formData = new FormData();}//将压缩后的文件放到FormData中formData.append("image", rst.file); $.ajax({type : "POST",//提交类型 //dataType : "json",//返回结果格式 url : '/admin/uploadFile.html',//请求地址 async : true,processData : false, //当FormData在jquery中使用的时候需要设置此项contentType : false,//如果不加,后台会报表单未封装的错误(enctype='multipart/form-data' )//请求数据 data : formData,success : function(obj) {//请求成功后的函数 //上传成功后续处理},error : function(XMLHttpRequest, textStatus, errorThrown) {}}); // end of ajaxSubmit}
4、后台方法自己写
参考地址:https://github.com/think2011/localResizeIMG.git
阅读全文
0 0
- JavaScript图片压缩上传
- 图片压缩上传 上传 压缩
- javascript异步上传压缩图片并立即显示图片
- javascript 上传文件(psd,压缩包等),图片,视频
- 上传图片按比例压缩
- 图片上传压缩处理
- 图片上传之压缩
- 图片压缩上传
- 图片压缩上传
- 图片上传压缩处理
- android图片压缩上传
- 图片上传之压缩
- 图片上传之压缩
- Android 图片压缩上传
- 图片压缩 ios 上传
- 图片上传压缩
- 图片上传压缩处理
- PHP压缩上传图片
- jquery键盘事件
- Spring的注解@DependsOn
- 237. Delete Node in a Linked List
- 注册
- LeetCode-94. Binary Tree Inorder Traversal
- JavaScript图片压缩上传
- qmake的使用,如何操作QT命令行
- 吴恩达深度学习笔记之改善神经网络(一)
- E企播报:大数据进化AI决策 阿里云AWS竞相布局
- 封装Okhttp3Util(拦截器)
- FreeRTOS学习--1
- 【反转问题】POJ
- CyclicBarrier 打造一个安全的门禁系统
- 购物车页面