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 });
},