/**
* 文件宽高
* @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;
}
}
})
                  }
                  });

                    },
 

js判断上传图片文件大小,尺寸,格式的更多相关文章

  1. JS判断上传图片格式是否正确

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

  2. js获取上传图片的尺寸大小

    当上传图片时,有时候需要控制下上传图片的尺寸大小,需要给个提示 //获取图片的尺寸,控制尺寸大小 var reader = new FileReader(), img = new Image(); / ...

  3. js判断上传图片宽高及文件大小

    <input id="file" type="file"> <input id="Button1" type=" ...

  4. JS 判断是否为IP格式

    <html> <head> <title><a href='http://js.zz5u.net'><u>JavaScript</u& ...

  5. js判断字符串是否json格式

    function isJSON(str) { if (typeof str == 'string') { try { var obj=JSON.parse(str); if(typeof obj == ...

  6. 兼容各浏览器的js判断上传文件大小

    由于项目需要,在网上找了一个JS判断上传文件大小的程序,经测试兼容IE6-,Firefox10,Opera11.,safari5.,chrome17 <!DOCTYPE html> < ...

  7. js判断上传文件大小

    下面提供三款网页特效判断上传文件大小哦,这三种方法是现在限制文件上传大小比较好的方法,可以在客户上传文件时限制上传文件大小判断处理<!doctype html public "-//w ...

  8. 【最简单的方法】js判断字符串是否为JSON格式(20180115更新)

    前言 针对 “js判断字符串是否为JSON格式” 这个问题,在网上查了许多资料,都没找到自己想要的答案. 但是看到这个帖子<js判断字符串是否为JSON格式>后,突然灵光一闪,想到一种很简 ...

  9. js判断时间格式是否有效

    js判断时间格式是否有效 1 短时间,形如 (13:04:06)function isTime(str){var a = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d ...

随机推荐

  1. python与用户交互、数据类型

    一.与用户交互 1.什么是用户交互: 程序等待用户输入一些数据,程序执行完毕反馈信息. 2.如何使用 在python3中使用input,input会将用户输入的如何内容存为字符串:在python中分为 ...

  2. grep匹配某个次出现的次数

    cat file | grep  -c 'xxx'  统计xxx在file中出现的行数 cat file | grep  -o 'xxx'  统计xxx在file中出现的次数

  3. NPOI打印设置

    打印设置主要包括方向设置.缩放.纸张设置.页边距等.NPOI 1.2支持大部分打印属性,能够让你轻松满足客户的打印需要. 方向设置首先是方向设置,Excel支持两种页面方向,即纵向和横向. 在NPOI ...

  4. Gson将字符串转map时,int默认为double类型

      gson能够将json字符串转换成map, 但是在转成map时, 会默认将字符串中的int , long型的数字, 转换成double类型 , 数字会多一个小数点 , 如 1 会转成 1.0 Gs ...

  5. Oracle logminer 日志挖掘

    Table of Contents 1. LOGMNR简介 2. 创建数据字典 2.1. 外部文件存储数据字典 2.2. redo log 存储数据字典 3. 添加需要分析的文件 4. 开始分析文件 ...

  6. linux:安装并使用activeMQ

    1.下载安装包:curl -O https://archive.apache.org/dist/activemq/5.14.0/apache-activemq-5.14.0-bin.tar.gz 2. ...

  7. Just Oj 2017C语言程序设计竞赛高级组A: 求近似值(矩阵快速幂)

    A: 求近似值 时间限制: 1 s      内存限制: 128 MB 提交 我的状态 题目描述 求⌊(5–√+6–√)2n⌋⌊(5+6)2n⌋%9932017. 例如:n=1,(5–√+6–√)2( ...

  8. .NET Framework 类库——C#命名空间大全

    引用地址:https://msdn.microsoft.com/zh-cn/library/gg145045.aspx C# using引用时,不知道有哪些命名空间,这下转载收集一篇,方面查找使用. ...

  9. IT设备服务监控的方法论

    有方法论提导,在技战术方面才不会偏离目录. 使用服务级别作为关键语,召示着承诺和责任. https://www.circonus.com/2018/06/comprehensive-container ...

  10. java.net.ConnectException: Call From slaver1/192.168.19.128 to slaver1:8020 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org

    1:练习spark的时候,操作大概如我读取hdfs上面的文件,然后spark懒加载以后,我读取详细信息出现如下所示的错误,错误虽然不大,我感觉有必要记录一下,因为错误的起因是对命令的不熟悉造成的,错误 ...