场景:有时间需要在上传前让前端把图片压缩一下后在上传
思路:在上传前压缩文件后生产新的文件即可 ,使用到的轮子 image-conversion
image-conversion@2.1.1
let pictureLabelList = ['png','jpg',...]
let type = "image/jpeg"
const compressPictureFn = async (file) => {
if (pictureLabelList.includes(file.file.type)) {
let num = numFn(file.file.size);
if (!num) return file;
console.log(byteToMFn(file.file.size), "压缩前");
const blob = await imageConversion.compressAccurately(file.file, 3000);
let name = file.file.name;
var files = new File([blob], name, {
type,
lastModified: Date.now(),
});
console.log(byteToMFn(files.size), "压缩后");
return { file: files };
}
return file;
};