iView,Upload组件beforeUpload压缩图片

关键代码


 
import Compressor from "compressorjs"

beforeUpload(file) {
  return new Promise((resolve, reject) => {
    let isLt1M = file.size / 1024 / 1024 < 1;

    if (isLt1M) {
      resolve(file);
    }
    new Compressor(file, {
      quality: 0.3,
      success(res) {
        res = new File([res], res.name, {
          type: res.type,
          lastModified: Date.now()
        });
        resolve(res);
      },
      error(err) {
        reject()
      }
    });
  });
}

代码解释

图片压缩工具用的是 compressorjs,由于compressorjs压缩图片后返回的是Blob对象,而iView只有当beforeUpload方法返回File对象时,才会将压缩后的文件替换用户上传的原文件,所以压缩后需要将Blob对象转换为File对象。

你可能感兴趣的:(前端,iview,javascript)