当前位置: 首页 > news >正文

基于element封装一个公共的限制图片宽高的方法

utils文件里面增加: 

/**
 * 用于图片上传时校验图片的宽高
 * @param file file对象
 * @param width 规定的图片宽度
 * @param height 规定的图片高度
 */
export function imgSize(context,file, width, height) {
  let ruleWidth = width
  let ruleHeight = height
  const isSize =  new Promise((resolve, reject) => {
    let url = window.URL || window.webkitURL
    let img = new Image()
    img.onload = function () {
      // 图片比例校验
      let valid = img.width === ruleWidth && img.height === ruleHeight
      console.log(valid,'valid...')
      valid ? resolve() : reject(new Error('error..'))
    }
    img.src = url.createObjectURL(file)
  }).then(
    () => {
      return file
    },
    () => {
      context.$message.error({
        message: `上传文件的图片大小不符合标准,宽需要为${ruleWidth}px,高需要为${ruleHeight}px`,
        btn: false
      })
      return Promise.reject(new Error('error..'))
    }
  )
  return isSize
}

使用:

import { imgSize } from '@utils/common'


     // 上传前限制
    beforeUpload(file) {
      console.log(file,'file...')
      const isSize = imgSize(this, file, 150, 150)
      const isJPG = file.type === 'image/jpeg' || file.type === 'image/png'
      const isLimit = file.size / 1024  <= 500
      !isJPG && this.$message.error('上传的图片接受JPG,PNG格式')
      !isLimit && this.$message.error('上传的图片大小不能超过 500KB!')
      return isJPG && isLimit && isSize
    },

 

相关文章:

  • elementUI编辑进入页面输入框输入内容没有作用问题
  • element上传图片校验尺寸
  • Vue Element采坑日记之图片上传后不及时更新视图
  • ellement非必填校验数字
  • ellement穿梭框,宽高调节
  • vue 中使用防抖和节流
  • element-ui 关于日期范围选择控件,如何限制只能选择30天
  • JS判断数组里是否有重复元素的方法小结
  • 防抖函数
  • vue中watch的详细用法,带deep,immediate
  • VScode ctrl+鼠标左键点击 无法定位的问题
  • 正则 校验英文逗号字符串
  • 修改window本地hosts文件,修改域名指向
  • express中处理json数据
  • vue watch 监听对象的某个属性
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • HTTP中GET与POST的区别 99%的错误认识
  • Java IO学习笔记一
  • javascript数组去重/查找/插入/删除
  • java小心机(3)| 浅析finalize()
  • k个最大的数及变种小结
  • nfs客户端进程变D,延伸linux的lock
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • nodejs:开发并发布一个nodejs包
  • node入门
  • OSS Web直传 (文件图片)
  • Redux 中间件分析
  • SQL 难点解决:记录的引用
  • swift基础之_对象 实例方法 对象方法。
  • v-if和v-for连用出现的问题
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 翻译--Thinking in React
  • 给新手的新浪微博 SDK 集成教程【一】
  • 你真的知道 == 和 equals 的区别吗?
  • 前端临床手札——文件上传
  • 如何实现 font-size 的响应式
  • 双管齐下,VMware的容器新战略
  • 在weex里面使用chart图表
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • 积累各种好的链接
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • $.ajax()方法详解
  • (1) caustics\
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (九)c52学习之旅-定时器
  • (正则)提取页面里的img标签
  • (转)母版页和相对路径
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • *上位机的定义
  • .form文件_SSM框架文件上传篇
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .one4-V-XXXXXXXX勒索病毒数据怎么处理|数据解密恢复
  • .skip() 和 .only() 的使用