文件上传,需当上传的文件类型为图片的时候,需要限制图片的宽高。

此处采用了new Promise异步加载的方式,等图片上传加载完成后,

页面代码:

 <el-form-item label="广告文件" style="width: 98%" v-if="dialogStatus!='view'">
<el-upload
class="upload-demo"
drag
:action=actionURL
:data={bizType:10}
:limit=1
:multiple = false
:file-list="fileList"
:on-remove="removeFile"
:before-upload="beforeUpload"
:on-exceed="handleExceed"
:on-success = 'handleAvatarSuccess'>
<i class="el-icon-upload"></i>
<div class="el-upload__text">
<div>将文件拖到此处,或<em>点击上传</em></div>
</div>
</el-upload>
<div class="tipCls" :class="{'fontWeightCls': form.adType==0}">图片:jpg,png,gif,webp,JPEG</div>
<div class="tipCls" :class="{'fontWeightCls': form.adType==1}">视频:3gp,mp4,mkv</div>
<div class="tipCls" :class="{'fontWeightCls': form.adType==2}">文本:txt</div>
<div class="tipCls" :class="{'fontWeightCls': form.adType==3}">声音: mp3,mkv,wav,ogg, 3gp, mp4,m4a,aac, ts,flac</div>
</el-form-item>

上传前检查事件:

   beforeUpload(file){
const fileTypeName = (file.name).substring(file.name.lastIndexOf('.')*1 + 1*1); // 获取后缀名
// (0图片,1视频,2文字,3声音)
let supportFormat = ['mp3','mkv','wav','ogg','3gp','mp4','m4a','aac','ts','flac', '3gp','mp4','mkv','txt', 'jpg', 'png', 'gif', 'JPEG'];
if(this.form.adType === 0){
supportFormat=['jpg', 'png', 'gif', 'JPEG'];
} else if(this.form.adType === 1){
supportFormat=['3gp','mp4','mkv'];
} else if(this.form.adType === 2){
supportFormat=['txt'];
} else if(this.form.adType === 3){
supportFormat =['mp3','mkv','wav','ogg','3gp','mp4','m4a','aac','ts','flac'];
}
let index = supportFormat.indexOf(fileTypeName);
if(index == -1){ // 说明核实不符合
this.$message.warning('上传文件的格式不合符,请重新上传!');
return false;
} else { // 图片文件大小限制,限制宽高分别为1280px和800px
if(this.form.adType == 0) {
22 let _this = this;
23 let imgWidth="";
24 let imgHight="";
25 const isSize = new Promise(function (resolve, reject) {
26 let width = 1280;
27 let height = 800;
28 let _URL = window.URL || window.webkitURL;
29 let img = new Image();
30 img.onload = function () {
31 imgWidth = img.width;
32 imgHight = img.height;
33 let valid = img.width == width && img.height == height;
34 valid ? resolve() : reject();
35 }
36 img.src = _URL.createObjectURL(file);
37 }).then(() => {
38 return file;
39 }, () => {
40 _this.$message.warning({message: '上传文件的图片大小不合符标准,宽需要为1280px,高需要为800px。当前上传图片的宽高分别为:'+imgWidth+'px和'+imgHight+'px', btn: false})
41 return Promise.reject();
42 });
43 console.log(isSize);
44 return isSize;
}else {
return true;
}
}
},

elementUI 图片上传限制上传图片的宽高的更多相关文章

  1. vue+elementUI 图片上传问题

    图片上传问题,获取后台的图片,并点击可以更换图片,并把图片存储到数据库中: (1)在编辑页面上,action指的图片上传的地址,header指请求头: (2)因为element-ui有自己上传的接口, ...

  2. 使用阿里云服务器(OOS)实现图片上传

    一: 页面 <%@ page language="java" contentType="text/html; charset=utf-8" pageEnc ...

  3. 如何用elementui去实现图片上传和表单提交,用axios的post方法

    下面是在vue搭建的脚手架项目中的组件component文件夹下面的upload.vue文件中的内容 <!--这个组件主要用来研究upload这个elementui的上传插件组件--> & ...

  4. .NET WebAPI 实现图片上传(包括附带参数上传图片)

    博主的项目,客户端是APP,考虑到以后也可能会应用到微信端.网站等,图片上传方法就需要兼容多端,并且以目前的设计,不允许非登录用户上传图片,就得在上传时解决附带参数上传图片的问题. 先来看看后台方法( ...

  5. php 图片上传的公共方法(按图片宽高缩放或原图)

    写的用于图片上传的公共方法类调用方法: $upload_name='pic';$type = 'logo_val';$file_name = 'logo_' . $user_id .create_st ...

  6. springmvc上传图片并显示图片--支持多图片上传

    实现上传图片功能在Springmvc中很好实现.现在我将会展现完整例子. 开始需要在pom.xml加入几个jar,分别是: <dependency> <groupId>comm ...

  7. 图片上传利用<iframe></iframe>标签实现无刷新上传图片

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. js判断图片上传时的文件大小,和宽高尺寸

    今天在做图片上传的小功能,使用了一个kissy上传组件.很好奇它是如何在图片上传前,检测到图片的大小和尺寸的?我们来写个小实例实现一下吧 如何读取图片的size 首先,原生input file控件有个 ...

  9. kindeditor修改图片上传路径-使用webapi上传图片到图片服务器

    kindeditor是一个非常好用的富文本编辑器,它的简单使用我就不再介绍了. 在这里我着重介绍一些使用kindeditor修改图片上传路径并通过webapi上传图片到图片服务器的方案. 因为我使用的 ...

随机推荐

  1. DM8168 IPNC Boa移植

    1.交叉编译openssL 下载openssL-1.0.0.tar.gz在虚拟机下进行交叉编译,生成libcrypto.a及libssl.a.将这两个文件复制到DVRRDK_03.00.00.00/b ...

  2. CF 557A(Ilya and Diplomas-贪心)

    A. Ilya and Diplomas time limit per test 1 second memory limit per test 256 megabytes input standard ...

  3. 您必须先调用“WebSecurity.InitializeDatabaseConnection”方法。。。

    有如下代码: [Authorize] public ActionResult Index() { ViewBag.ShowList = ShowList.GetShowList(WebSecurity ...

  4. Linux gadget驱动分析1------驱动加载过程

    为了解决一个问题,简单看了一遍linux gadget驱动的加载流程.做一下记录. 使用的内核为linux 2.6.35 硬件为芯唐NUC950. gadget是在UDC驱动上面的一层,如果要编写ga ...

  5. bzoj1898: [Zjoi2005]Swamp 沼泽鳄鱼

    一眼矩乘 把图分成12个,然后直接搞. #include<cstdio> #include<iostream> #include<cstring> #include ...

  6. hdfs du命令是算的一份数据

    As you can see, hadoop fsck and hadoop fs -dus report the effective HDFS storage space used, i.e. th ...

  7. 【BZOJ 1598】 牛跑步

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1598 [算法] A*求k短路 [代码] #include<bits/stdc+ ...

  8. LBS(定位)的使用

    一.LBS(定位)的使用 1.使用框架Core Location 2.CLLocationManager (1)CoreLocation中使用CLLocationManager对象来做用户定位 (2) ...

  9. 81.Ext TreePanel实现单选等功能

    转自:https://blog.csdn.net/iteye_7988/article/details/81886654 在ext1.x里,树是没有checkbox的, 幸好在2.X版本里提供了这个功 ...

  10. leetcode链表相关

    目录 2/445两数相加 综合题(328奇偶链表, 206反转链表, 21合并两个有序链表 ) 92反转链表 II 链表排序(148排序链表, 876链表的中间结点) 142环形链表 II 160相交 ...