a-upload上传限制图片类型、大小、以及宽高尺寸

html

<a-upload
  v-model:file-list="fileList"
  name="avatar"
  list-type="picture-card"
  class="avatar-uploader"
  :show-upload-list="false"
  action
  :before-upload="beforeUpload"
  :customRequest="changeRequest"
  :disabled="!isEdit"
  accept=".jpg,.jpeg,.png"
>
  <img v-if="imageUrl" :src="imageUrl" class="network-img" />
  <div v-else>
    <loading-outlined v-if="loading"></loading-outlined>
    <plus-outlined class="add-icon" v-else></plus-outlined>
    <div class="ant-upload-text">上传图片</div>
  </div>
</a-upload>

js

// 上传之前的回调
const beforeUpload = file => {
  return new Promise((resolve, reject) => {
    const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png' || file.type === 'image/jpg'
    if (!isJpgOrPng) {
      message.error('只能上传jpg、jpeg、png格式的图片')
      return reject(false)
    }
    let w = 0,
      h = 0
    const reader = new FileReader()
    reader.readAsDataURL(file)
    reader.onload = () => {
      const image = new Image()
      image.src = reader.result
      image.onload = () => {
        w = image.width
        h = image.height
        if (w <= 550 && h <= 510) {
          // 图片尺寸上限为550
          return resolve(true)
        }
        message.error('图片尺寸上限为550*510')
        return reject(false)
      }
    }
    const isLt5M = file.size / 1024 / 1024 <= 5
    if (!isLt5M) {
      message.error('图片大小不能超过5M')
      return reject(false)
    }
    return isJpgOrPng && isLt5M
  })
}
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值