【JavaScript】上传前获取图片宽度尺寸和大小

直接上代码:

beforeAvatarUpload(file) {
  const isImg = file.type === 'image/jpeg' || file.type === 'image/png'
  const isLt2M = file.size / 1024 / 1024 < 5

  if (!isImg) {
    this.$notify({
      title: '失败',
      message: '上传图片只能是 JPG/JPEG/PNG 格式!',
      type: 'error',
      duration: 3000
    })
    return false
  }
  if (!isLt2M) {
    this.$notify({
      title: '失败',
      message: '上传图片大小不能超过 4MB!',
      type: 'error',
      duration: 3000
    })
    return false
  }

  var reader = new FileReader();
  reader.readAsDataURL(file);
  reader.onload = function () { //让页面中的img标签的src指向读取的路径
    var img = new Image()
    img.src = reader.result
    if (img.complete) {//如果存在浏览器缓存中
      if (img.width > 540 || img.height > 300) {
        this.$notify({
          title: '失败',
          message: '上传图片分辨率建议540*300,宽度不可超过540px,高度不超过300px!',
          type: 'error',
          duration: 3000
        })
        return false
      }

    } else {
      img.onload = function () {
        if (img.width > 540 || img.height > 300) {
          this.$notify({
            title: '失败',
            message: '上传图片分辨率建议540*300,宽度不可超过540px,高度不超过300px!',
            type: 'error',
            duration: 3000
          })
          return false
        }
      }
    }
  }

  return isImg && isLt2M
}
posted @ 2021-05-11 17:12  [ABing]  阅读(213)  评论(0编辑  收藏  举报