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

此处采用了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. Myeclipse中解决spring配置文件无提示问题

    相信非常多人都遇到过在部署spring框架写spring的配置文件时无提示内容的问题,都是仅仅能提示一些标签 名,而无法提示属性值,bz我本人今天也遇到了这种问题.在网上找了非常久答案,非常多方法都不 ...

  2. ios 得用代理反向传值

    应用场景:有时时候从界面A跳转到界面B,界面B在返回的时候须要将处理的结果传递给A. 实现思路:1,定义一个负责传值的协义,界面A拥有该协义属性,并实现该协义中的方法 2.界面B也拥有该协义属性(代理 ...

  3. hive-0.11.0安装方法具体解释

    先决条件:     1)java环境,须要安装java1.6以上版本号     2)hadoop环境,Hadoop-1.2.1的安装方法參考hadoop-1.2.1安装方法具体解释 本文採用的hado ...

  4. 《TCP/IP具体解释》读书笔记(21章)-TCP的超时与重传

    TCP提供可靠的运输层. 它使用的方法之中的一个就是确认从还有一端收到的数据.但数据和确认都有可能会丢失.TCP通过在发送时设置一个定时器来解决这样的问题.假设当定时器溢出时还没有收到确认,它就重传该 ...

  5. C++_homework_StackSort

    顾名思义(?)类似于单调栈?维护一个单调递减的栈.一旦准备入栈的元素大于栈顶元素,栈一直弹出直到准备入栈的元素小于等于栈顶元素,弹出的元素压入另一个tmp栈中. #include <iostre ...

  6. com/opensymphony/xwork2/spring/SpringObjectFactory.java:220:-1问题出现的原因及解决办法

    转自:https://blog.csdn.net/shinchan_/article/details/37818927 com/opensymphony/xwork2/spring/SpringObj ...

  7. Python入门 来点栗子

    查天气(1) http://wthrcdn.etouch.cn/weather_mini?citykey=101280804 http://wthrcdn.etouch.cn/WeatherApi?c ...

  8. c++调用DOS命令,不显示黑屏

    WinExec("Cmd.exe /C md c://12", SW_HIDE); 注释:/c是什么意思,不用/C会报错 CMD [/A | /U] [/Q] [/D] [/E:O ...

  9. AOP实现参数的判空问题

    不想每次都去判断必传的参数是否为空,写代码太繁琐了,正好最近用了AOP实现权限控制,依葫芦画瓢,现在用它实现参数的判空,至于AOP的原理之类,自己百度了解一下吧 1. NullDisable注解 @D ...

  10. WinSocket简单聊天程序客户端

    #pragma comment(lib,"Ws2_32.lib") #include <stdio.h> #include <Winsock2.h> SOC ...