vue  文件: 自行引用 elemen-ui 
 
    <el-upload
                        action=" 让后端给你上传地址 "
                        list-type="picture-card"
                        accept="image/*"
                        :limit="1"
                        :file-list="productImgs"
                        :multiple="isMultiple"
                        :on-preview="handlePictureCardPreview"
                        :on-remove="handleRemove"
                        :on-success="handleAvatarSuccess"
                        :before-upload="beforeAvatarUpload"
                        :on-exceed="handleExceed"
                        :on-error="imgUploadError">
                        <i class="el-icon-plus"></i>
                    </el-upload>
                    <el-dialog :visible.sync="dialogVisible">
                        <img width="100%" :src="data:image" alt="">
                    </el-dialog>
 
data:
 
image: '',
            dialogVisible: false,
            productImgs: [],
            isMultiple: true,
 
 
methods: 
handleRemove(file, fileList) {//移除图片
            this.$message.success("删除图片成功")
        },
        handlePictureCardPreview(file) {//预览图片时调用
            this.image = file.url;
            this.dialogVisible = true;
        },
        
        beforeAvatarUpload(file) {//文件上传之前调用做一些拦截限制
            const isLt2M = file.size / 1024 / 1024 < 2;
 
    //格式限制    
    var testmsg=file.name.substring(file.name.lastIndexOf('.')+1)
                const extension = testmsg === 'png'
                const extension2 = testmsg === 'jpg'
                
                if(!extension && !extension2) {
                    this.$message({
                        message: 'icon 图只能是 png / jpg 格式!',
                        type: 'warning'
                    });
                    return false;//必须加上return false; 才能阻止
                }
 
  
    // 大小限制
            if (!isLt2M) {
            this.$message.error('上传图片大小不能超过 2MB!');
            }
 
    // 宽高限制

    const isSize = new Promise(function(resolve, reject){
                    let width = 400;
                    let height = 400;
                    let _URL = window.URL || window.webkitURL;
                    let img = new Image();
                    img.onload = function(){
                        let valid = img.width == width && img.height == height;
                        valid ? resolve() : reject();
                    }
                    img.src = _URL.createObjectURL(file);
                    }).then(()=>{
                    return file;
                    }, ()=>{
                    this.$message({
                        message:'icon图尺寸只能是400*400px!请重新选择!',
                        type: 'warning'
                    });
                    return Promise.reject()
                    return false;//必须加上return false; 才能阻止
                })
 
            return jp&& isLt2M && isSize;
        },
        handleAvatarSuccess(res, file) {//图片上传成功
            console.log(res);
            console.log(file);
            this.imageUrl = URL.createObjectURL(file.raw);
        },
        handleExceed(files, fileList) {//图片上传超过数量限制
            this.$message.error('上传图片不能超过6张!');
        },
        imgUploadError(err, file, fileList){//图片上传失败调用
            this.$message.error('上传图片失败!');
        }
 
 
 
 
 

vue element-ui 组件上传图片 以及对 图片的 宽高 和 大小 格式等 做出限制的更多相关文章

  1. Vue + Element UI 实现权限管理系统 前端篇(九):接口格式定义

    接口请求格式定义 前台显示需要后台数据,我们这里先把前后端交互接口定义好,没有后台的时候,也方便用mock模拟. 接口定义遵循几个规范: 1. 接口按功能模块划分. 系统登录:登录相关接口 用户管理: ...

  2. .Net 上传图片之前获取图片的宽高

    Stream st = Request.Files[0].InputStream;                  Byte[] buffer = new Byte[st.Length];      ...

  3. vue+element ui 的上传文件使用组件

    前言:工作中用到 vue+element ui 的前端框架,使用到上传文件,则想着封装为组件,达到复用,可扩展.转载请注明出处:https://www.cnblogs.com/yuxiaole/p/9 ...

  4. vue+element ui 的表格列使用组件

    前言:工作中用到 vue+element ui 的前端框架,有这个场景:很多表格的列有许多一样的,所以考虑将列封装为组件.转载请注明出处:https://www.cnblogs.com/yuxiaol ...

  5. vue+element ui中select组件选择失效问题原因与解决方法

    codejing 2020-07-10 09:13:31  652  收藏 分类专栏: Web Vue Element UI 版权 .当表单form赋完值后,如果后续又对form中某一属性值进行操作如 ...

  6. 基于 vue+element ui 的cdn网站(多页面,都是各种demo)

    前言:这个网站持续更新中...,有网上预览,github上也有源码,喜欢记得star哦,欢迎留言讨论. 网站地址:我的个人vue+element ui demo网站 github地址:yuleGH g ...

  7. vue + element ui 实现实现动态渲染表格

    前言:之前需要做一个页面,能够通过表名动态渲染出不同的表格,这里记录一下.转载请注明出处:https://www.cnblogs.com/yuxiaole/p/9786326.html 网站地址:我的 ...

  8. [转]VUE优秀UI组件库合集

    原文链接 随着SPA.前后端分离的技术架构在业界越来越流行,前端的业务复杂度也越来越高,导致前端开发者需要管理的内容,承担的职责越来越多,这一切,使得业界对前端开发方案的思考多了很多,以react.v ...

  9. vue + element ui 表格自定义表头,提供线上demo

    前言:工作中用到 vue+element ui 的前端框架,需要使用自定义表头,需要使用 re.转载请注明出处:https://www.cnblogs.com/yuxiaole/p/9710826.h ...

随机推荐

  1. GitHub秘钥(SSH Key)

    一.公钥的作用 公钥一般给服务器,别人权限中加入我给的公钥,当我们从远地仓库中下载项目(git clone xxx)的时 那个服务器通过他的绑定的公钥来匹配我的私钥,如果匹配,则就可以正常下载,如果不 ...

  2. Cookie、Session、JWT在koa中的应用及实现原理

    目录 Cookie 重要属性 实现原理 cookie签名实现原理 注意事项 Session 实现原理 JWT 使用方式 组成 实际应用 实现原理 前端存储方式 cookie session local ...

  3. noip模拟测试20

    考试总结:这次考试,我非常真实地感觉到了自己能力的提高,具体来说,在之前的考试中,读完题之后我只会想到暴力的思路,甚至有的题连暴力都打不出来,但是这次在考场上我已经有了自己的一些想法,有了一个深入思考 ...

  4. linux笔记2随笔

    124.diff命令:文件内容对比 diff命令用于比较多个文本文件之间的差异,这在系统安全防范中非常重要.比如当黑客入侵系统之后,往往会修改一些系统配置文件,从而留下一些后门. 所以作为运维人员.最 ...

  5. Java基础——自增自减及初识Math类

    自增自减及初识Math类  public class Demon05 {     public static void main(String[] args) {         // ++ -- 自 ...

  6. 用Autohotkey让Kitty命令行变得更好用

    下面的脚本实现Win+K键激活一个输入框,给出了kitty命令行常用的几种格式,基本可分为两种:连接保存好的模板(session)和完全手工连接,前者用-load加Session名称,后者需要在命令行 ...

  7. tomcat下载、安装及配置

    一,下载Tomcat 1.进入官网Http://tomcat.apache.org/,选择download,下载所需要的Tomcat版本. 注意有zip和exe两种格式的 zip(64-bit Win ...

  8. SQL 练习10

    查询没有学全所有课程的同学的信息 分析 先查询出所有课程的数量 select count(cid) from course 再查询出成绩表中课程数量=总课数的人员 select sid from sc ...

  9. java简体(繁体)转换器

    <!--中文字符简繁体互相转换--> <dependency> <groupId>com.github.nobodxbodon</groupId> &l ...

  10. windows上python3安装

    下载python 下载地址 https://www.python.org/downloads/windows/ 安装python 1.添加python到环境变量 2.自定义安装 3.下一步 4.选择安 ...