vue简单明了控制图片上传尺寸

 //上传前校验方法 
 beforeAvatarUpload (file) {
      return new Promise((resolve, reject) => {
        const suffix =
          file.type === 'image/jpg' ||
          file.type === 'image/png' ||
          file.type === 'image/jpeg'
        const isLt1M = file.size / 1024 / 1024 < 1
        if (!suffix) {
          Message.error('上传图片只能是 JPG,PNG,JPEG 格式!')
          return reject(false)
        }
        if (!isLt1M) {
          Message.error('上传图片大小不能超过 1MB!')
          return reject(false)
        }
        // 调用[限制图片尺寸]函数
        this.limitFileWH(200, 200, file).then((res) => {
          file.isFlag = res
          if (file.isFlag) {
            return resolve(true)
          } else {
            return reject(false)
          }
        })
      })
    },

  控制图片尺寸方法

 // 上传图片事件限制图片尺寸
    limitFileWH (E_width, E_height, file) {
      const _this = this
      let imgWidth = ''
      let imgHight = ''
      const isSize = new Promise(function (resolve, reject) {
        const width = E_width
        const height = E_height
        const _URL = window.URL || window.webkitURL
        const img = new Image()
        img.onload = function () {
          imgWidth = img.width
          imgHight = img.height
          const valid = img.width === width && img.height === height
          valid ? resolve() : reject()
        }
        img.src = _URL.createObjectURL(file)
      }).then(
        () => {
          return true
        },
        () => {
          Message.warning({
            message:
              '上传图片的尺寸应为' +
              E_width +
              '*' +
              E_height +
              ',当前上传图片的尺寸为:' +
              imgWidth +
              '*' +
              imgHight
          })
          return false
        }
      )
      return isSize
    },

 

 <el-upload
                   :headers="headers"
                  class="avatar-uploader"
                  action="xxxxxxx"
                  :data="{uploadType:'userZoneImg'}"
                  :show-file-list="false"
                  :on-success="handleAvatarSuccess"
                  :before-upload="beforeAvatarUpload"
                   name="file"
  />

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值