博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js判断上传图片文件大小,尺寸,格式
阅读量:4509 次
发布时间:2019-06-08

本文共 4051 字,大约阅读时间需要 13 分钟。

/** * 文件宽高 * @param eventId id * @param w 宽度 * @param h 高度 * @param callback 回调函数 这里判断图片像素的方法是异步的,所以需要在回调函数中来进行上传的操作 */function testImgWidthHeight(eventId, w,h,callback){    var input = document.getElementById(eventId);    if(input.files){        //读取图片数据        var f = input.files[0];        var reader = new FileReader();        reader.onload = function (e) {            var data = e.target.result;            //加载图片获取图片真实宽度和高度            var image = new Image();            image.onload=function(){                var width = image.width;                var height = image.height;                if (width != w || height != h) {                    //隐藏                    input.value="";                    callback && callback(false);                } else {                    callback && callback(true);                }            };            image.src= data;        };        reader.readAsDataURL(f);    }else{        var image = new Image();        image.onload =function(){            var width = image.width;            var height = image.height;            var fileSize = image.fileSize;            alert(width+'===2==='+height+"====="+fileSize);        }        image.src = input.value;    }}
/**  *文件大小  * @param fileData  * @param Max_Size  * @returns {boolean}  */ function testMaxSize(fileData,Max_Size){
var isAllow=false; var size = fileData.size; isAllow = size <= Max_Size; if(!isAllow){
vue.$message({
message: '图片大小超过限制!', type: 'warning' }); } return isAllow; } /** * 判断图片类型 * @param eventId * @param gif|jpg|jpeg|png|GIF|JPG|PNG * @returns {boolean} */ function testImgType(eventId) {
var tmpFile = document.getElementById(eventId); if (!/\.(jpg)$/.test(tmpFile.value)) {
tmpFile.value= ""; vue.$message({
message: '图片格式不正确!', type: 'warning' }); return false; } return true; }
 
        //上传图片               getFile(event) {                   let eventId = event.target.id;                   let type=  testImgType(eventId);                   if(!type){                       return;                   }                   let max = testMaxSize(event.target.files[0],1024*3*1024);                   if(!max){                       vue.$message({                           message: '图片大小超过限制!',                           type: 'warning'                       });                       return;                   }                   var _this =this;//回调函数this指向                   let width = 1920;                   let height = 1080;                   if(eventId=="img5" || eventId=="img6" || eventId=="img7" || eventId=="img8" ){                       width =1080;                       height=1920;                   }                   let widthImg = testImgWidthHeight(eventId,width,height,function (res) {                       if (!res) {                           vue.$message({                               message: '图片尺寸不正确!',                               type: 'warning'                           });                       }else {
//上传请求的逻辑,在回调函数中进行处理; let formData = new FormData(); formData.append('file', event.target.files[0]); let config = { headers: { 'Content-Type': 'multipart/form-data' } } _this.$http.post([[@{
/common/uploadFile}]], formData, config).then(function (res) { if (res.data.code == '000') { if(eventId=='img1' || eventId=='img2' ){ _this.designUserList[0].cardImg=res.data.data; } } })
                  }
                  });                     },
 

 

转载于:https://www.cnblogs.com/SimonHu1993/p/9253732.html

你可能感兴趣的文章
filebeat
查看>>
如何在Bitmap中画图?(MFC)
查看>>
Windows 用来定位 DLL 的搜索路径
查看>>
常见的游戏设计技术
查看>>
Backbone 学习笔记五
查看>>
R语言:各种零碎
查看>>
Mysql5.7修改root密码
查看>>
WC2019退役失败记
查看>>
Centos6.6下安装nginx1.6.3
查看>>
iOS开发之多线程
查看>>
[算法竞赛]第七章_暴力求解法
查看>>
关于全局替换空格,制表符,换行符
查看>>
MorkDown 常用语法总结
查看>>
sqlserver生成随机数 2011-12-21 15:47 QQ空间
查看>>
jQuery禁止鼠标右键
查看>>
查询linux计算机的出口ip
查看>>
解决Android的ListView控件滚动时背景变黑
查看>>
laravel 多检索条件列表查询
查看>>
Java_基础—finally关键字的特点及作用
查看>>
SQLServer 日期函数大全
查看>>