vue和js 文件压缩 以及base64转file文件

vue 中使用lrz压缩文件
1,cnpm i lrz --save 下载依赖
2.使用 import lrz from “lrz”; 先引用
let url = window.webkitURL.createObjectURL(val); //val 就是你选择的file文件
lrz(url, { quality: 0.7, width: 400 })
.then((rst)=>{
// console.log(rst);
// console.log((rst.file.size/1024));
if((rst.file.size/1024)<8){ //限制压缩之后的文件大小
this.file_path=rst.base64 //压缩之后的base64

				//调用base64 转文件的方法 参数(base64,文件名)
				let file = this.base64ToFile(this.file_path,val.name);   
			}else{
				this.$Message.error('文件过大,文件不能大于8M!');
			}
		   this.doneLoadnig = false;
		    // 处理成功会执行
		  }) .catch((err)=> {
			  // 处理失败会执行
			  this.$Message.error("图片处理失败,请换一张图试试");
			   this.doneLoadnig = false;
			})

//base64转file文件的方法
base64ToFile(urlData, fileName) { //base64转File
let arr = urlData.split(’,’);
let mime = arr[0].match(/😦.*?);/)[1];
let bytes = atob(arr[1]); // 解码base64
let n = bytes.length
let ia = new Uint8Array(n);
while (n–) {
ia[n] = bytes.charCodeAt(n);
}
return new File([ia], fileName, { type: mime });
},

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值