js判断上传图片文件大小,尺寸,格式
/**
* 文件宽高
* @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判断上传图片文件大小,尺寸,格式的更多相关文章
- JS判断上传图片格式是否正确
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- js获取上传图片的尺寸大小
当上传图片时,有时候需要控制下上传图片的尺寸大小,需要给个提示 //获取图片的尺寸,控制尺寸大小 var reader = new FileReader(), img = new Image(); / ...
- js判断上传图片宽高及文件大小
<input id="file" type="file"> <input id="Button1" type=" ...
- JS 判断是否为IP格式
<html> <head> <title><a href='http://js.zz5u.net'><u>JavaScript</u& ...
- js判断字符串是否json格式
function isJSON(str) { if (typeof str == 'string') { try { var obj=JSON.parse(str); if(typeof obj == ...
- 兼容各浏览器的js判断上传文件大小
由于项目需要,在网上找了一个JS判断上传文件大小的程序,经测试兼容IE6-,Firefox10,Opera11.,safari5.,chrome17 <!DOCTYPE html> < ...
- js判断上传文件大小
下面提供三款网页特效判断上传文件大小哦,这三种方法是现在限制文件上传大小比较好的方法,可以在客户上传文件时限制上传文件大小判断处理<!doctype html public "-//w ...
- 【最简单的方法】js判断字符串是否为JSON格式(20180115更新)
前言 针对 “js判断字符串是否为JSON格式” 这个问题,在网上查了许多资料,都没找到自己想要的答案. 但是看到这个帖子<js判断字符串是否为JSON格式>后,突然灵光一闪,想到一种很简 ...
- js判断时间格式是否有效
js判断时间格式是否有效 1 短时间,形如 (13:04:06)function isTime(str){var a = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d ...
随机推荐
- 部署apache-tomcat环境
软件体系: C/S:客户端/服务器,例如qq等app都属于C/S体系,除了编写服务端代码还需要编写客户端 优点:展现比较好,客户端会承受一点运算压力,安全性比较好 缺点:更新服务端的同时还需要更新客户 ...
- springboot第一个项目【mybatis】
1.resources下添加spring 添加spring-context.xml,设置controller的路径,以及引入数据库配置 <beans xmlns="http://www ...
- Centos查看端口占用和开启端口命令
Centos查看端口占用情况命令,比如查看80端口占用情况使用如下命令: lsof -i tcp:80 列出所有端口 netstat -ntlp 1.开启端口(以80端口为例) 方法一: /sbin/ ...
- 神经网络之 Batch Normalization
知乎 csdn Batch Normalization 学习笔记 原文地址:http://blog.csdn.net/hjimce/article/details/50866313 作者:hjimce ...
- easyui的combobox,自动搜索的下拉框
作者:多来哈米 如图,输入关键字,左匹配检索 HTML代码 <input class="easyui-combobox" name="userId" id ...
- Confluence 6 管理协同编辑 - 修改编辑模式
编辑模式确定了你站点所有用户使用协同编辑的体验,这个是你对协同编辑进行启用和关闭的地方. 希望修改编辑模式: 进入 > 基本配置(General Configuration) > 协同编 ...
- Confluence 6 使用 Apache 和 mod_proxy 添加 SSL和其他
添加 SSL 如果你计划在你的应用中启用 SSL ,请参考 Securing your Atlassian applications with Apache using SSL页面中的内容,并确定你在 ...
- Android 基础 二 四大组件 Activity
Activity Intent IntentFilter 一理论概述 一. Activity 用来提供一个能让用户操作并与之交互的界面. 1.1 启动 startActivity(Intent int ...
- node.js 框架express有关于router的运用
1.express 路由入门 const express = require('express'); let server = express(); server.listen(8087); //用户 ...
- C和Java判断一个数字是否为素数
C: /* 素数: 素数又称质数.所谓素数是指除了 1 和它本身以外,不能被任何整数整除的数,例如17就是素数,因为它不能被 2~16 的任一整数整除. */ # include <stdio. ...