elementUI 图片上传限制上传图片的宽高

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

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

页面代码:

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

上传前检查事件:

 1   beforeUpload(file){
 2         const fileTypeName = (file.name).substring(file.name.lastIndexOf('.')*1 + 1*1);  // 获取后缀名
 3         // (0图片,1视频,2文字,3声音)
 4         let supportFormat = ['mp3','mkv','wav','ogg','3gp','mp4','m4a','aac','ts','flac', '3gp','mp4','mkv','txt', 'jpg', 'png', 'gif', 'JPEG'];
 5         if(this.form.adType === 0){
 6           supportFormat=['jpg', 'png', 'gif', 'JPEG'];
 7         } else if(this.form.adType === 1){
 8           supportFormat=['3gp','mp4','mkv'];
 9         } else if(this.form.adType === 2){
10           supportFormat=['txt'];
11         } else if(this.form.adType === 3){
12           supportFormat =['mp3','mkv','wav','ogg','3gp','mp4','m4a','aac','ts','flac'];
13         }
14         let index = supportFormat.indexOf(fileTypeName);
15         if(index == -1){  // 说明核实不符合
16           this.$message.warning('上传文件的格式不合符,请重新上传!');
17           return false;
18         } else {
19
20           // 图片文件大小限制,限制宽高分别为1280px和800px
21           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;
45           }else {
46             return true;
47           }
48         }
49       },

转载于:https://www.cnblogs.com/luoxuemei/p/10856421.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值