vant+compressorJs压缩图片并上传

1、安装Compressor.js

https://cdn.bootcdn.net/ajax/libs/compressorjs/1.2.1/compressor.js

2、HTML

<van-uploader v-model="fileList" multiple :max-count="1" :before-read="beforeRead" preview-size="130px" />

 

3、方法

复制代码
// 返回布尔值
    beforeRead(file) {
      if (file.type !== 'image/jpeg' && file.type !== 'image/png' && file.type !== 'image/jpg') {
        Toast('请上传图片格式');
        return false;
      }
      if(file.size<1024*1024*2){
        console.log('图片大小1',file.size)
        Toast('请上传2M以上图片');
        return false;
      }
      if(file.size>1024*1024*25){
        this.fileSize = file.size
        console.log('图片大小2',file.size)
        // Toast('请上传20M以下图片');
        let that = this
        console.log('aaaaaaaaaaaaaaaaaaaaaaa',file)
        return new Promise((resolve) => {
          // compressorjs 默认开启 checkOrientation 选项
          // 会将图片修正为正确方向
          new Compressor(file, {
            quality: 1,
            success(result){
              let file1 = new File([result], file.name, { type: file.type })
              console.log("File对象", file1);
              that.uploadFile(file1)
              resolve(result);
            },
            error(err) {
              console.log(err.message);
            },
          });
        });
      }
      this.fileSize = file.size
      console.log('图片大小3',file.size)
      this.uploadFile(file)
      return true;
    },
复制代码

3、上传图片

复制代码
uploadFile(file) {
      var formData = new FormData();
      formData.append("pic", file);
      // formData.system=H5
      this.$refs.loading.postForm("pwp/uploadpic", formData).then((res) => {
        // this.$refs.loading.loadingFlag--;
        if (res.status === "100000") {
          // fileUrl = res.data;
          this.fileUrl = res.data
          console.log('this.fileUrl',res);
        } else {
          Toast.fail("提交失败,请稍后重试");
        }
      });
    },
复制代码

 

posted @   shi-tao  阅读(720)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
点击右上角即可分享
微信分享提示