金狮镖局 Design By www.egabc.com
项目中遇到上传图片需要在前端进行图片压缩,将我的实现思路记录一下。(我已经拿到上传的file文件的前提下)
先创建一个公用的js,这里我的是api.js,里面封装一些常用的方法
将图片压缩的方法写到这个公用的js(api.js)中
//base64转码(压缩完成后的图片为base64编码,这个方法可以将base64编码转回file文件) function dataURLtoFile(dataurl) { var arr = dataurl.split(','), mime = arr[0].match(/:(.*"width", w); canvas.setAttribute("height", h); ctx.drawImage(this, 0, 0, w, h); if(fileSize<1){ //如果图片小于一兆 那么不执行压缩操作 base64 = canvas.toDataURL(file['type'], 1); }else if(fileSize>1&&fileSize<2){ //如果图片大于1M并且小于2M 那么压缩0.5 base64 = canvas.toDataURL(file['type'], 0.5); }else{ //如果图片超过2m 那么压缩0.2 base64 = canvas.toDataURL(file['type'], 0.2); } // 回调函数返回file的值(将base64编码转成file) files = dataURLtoFile(base64); //如果后台接收类型为base64的话这一步可以省略 resolve(files) }; }; }) }; //结尾处将该方法暴露出来供外部调用 export default { compressImg, }
在main.js中引入公用js(api.js)
import api from './http/api.js' //这里注意自己的路径 Vue.prototype.$api = api //注册为全局变量
接下来在需要的地方调用我们的公用方法
this.$api.compressImg()//调用
我的调用方法
图片压缩的方法为异步执行 使用async await 解决异步问题(需要等压缩完成后)
//上传前压缩图片 async beforeRead(file){//async await 解决异步问题, var formData = new FormData();//创建新的form if(file.length){ //file.length为真的时候说明是多图上传 要循环多图将file对象放进form中 for(let i=0;i<file.length;i++){ var f = await this.$api.compressImg(file[i]) //await只能放在async函数里 await会等待异步方法的返回值拿到以后在执行后面的方法 formData.set('file'+i,f) } }else{ let f = await this.$api.compressImg(file) formData.set('file0',f) } }
然后将formData传给后台,生成图片的线上地址就OK了!
总结
金狮镖局 Design By www.egabc.com
金狮镖局
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
金狮镖局 Design By www.egabc.com
暂无vue中实现图片压缩 file文件的方法的评论...
更新日志
2024年11月20日
2024年11月20日
- 柏菲·珞叔作品集《金色大厅2》限量开盘母带ORMCD[低速原抓WAV+CUE]
- Gareth.T《sad songs(Explicit)》[320K/MP3][29.03MB]
- Gareth.T《sad songs(Explicit)》[FLAC/分轨][152.85MB]
- 证声音乐图书馆《海风摇曳·盛夏爵士曲》[320K/MP3][63.06MB]
- 龚玥《金装龚玥HQCD》头版限量[WAV分轨]
- 李小春《吻别》萨克斯演奏经典[原抓WAV+CUE]
- 齐秦《辉煌30年24K珍藏版》2CD[WAV+CUE]
- 证声音乐图书馆《海风摇曳·盛夏爵士曲》[FLAC/分轨][321.47MB]
- 群星 《世界经典汽车音乐》 [WAV分轨][1G]
- 冷漠.2011 《冷漠的爱DSD》[WAV+CUE][1.2G]
- 陈明《流金岁月精逊【中唱】【WAV+CUE】
- 群星《Jazz-Ladies1-2爵士女伶1-2》HQCD/2CD[原抓WAV+CUE]
- 群星《美女私房歌》(黑胶)[WAV分轨]
- 郑源.2009《试音天碟》24BIT-96KHZ[WAV+CUE][1.2G]
- 飞利浦试音碟 《环球群星监听录》SACD香港版[WAV+CUE][1.1G]