js验证上传图片的方法


Posted in Javascript onMay 12, 2015

本文实例讲述了js验证上传图片的方法。分享给大家供大家参考。具体实现方法如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>js验证图片</title>
<script>
 UpLoadFileCheck=function()
 { 
  this.AllowExt=".jpg,.gif";
  //允许上传的文件类型 0为无限制
  //每个扩展名后边要加一个"," 小写字母表示 
  this.AllowImgFileSize=0;
  //允许上传文件的大小 0为无限制 单位:KB 
  this.AllowImgWidth=0;
  //允许上传的图片的宽度 0为无限制 单位:px(像素) 
  this.AllowImgHeight=0;
  //允许上传的图片的高度 0为无限制 单位:px(像素) 
  this.ImgObj=new Image();
  this.ImgFileSize=0;
  this.ImgWidth=0;
  this.ImgHeight=0;
  this.FileExt="";
  this.ErrMsg="";
  this.IsImg=false;//全局变量
 }
 UpLoadFileCheck.prototype.CheckExt=function(obj)
 {
 this.ErrMsg=""; 
 this.ImgObj.src=obj.value; 
 //this.HasChecked=false; 
 if(obj.value=="")
 {
  this.ErrMsg="\n请选择一个文件";  
 }
 else
 {  
  this.FileExt=obj.value.substr(obj.value.lastIndexOf(".")).toLowerCase(); 
  if(this.AllowExt!=0&&this.AllowExt.indexOf(this.FileExt)==-1)
  //判断文件类型是否允许上传 
  { 
  this.ErrMsg="\n该文件类型不允许上传。请上传 "+this.AllowExt+" 类型的文件,当前文件类型为"+this.FileExt;  
  }
 } 
 if(this.ErrMsg!="") 
 {
  this.ShowMsg(this.ErrMsg,false); 
  return false;
 }
 else  
  return this.CheckProperty(obj);  
 }
 UpLoadFileCheck.prototype.CheckProperty=function(obj)
 {
 if(this.ImgObj.readyState!="complete")//
  { 
  sleep(1000);//一秒使用图能完全加载  
  }  
 if(this.IsImg==true)
 {
  this.ImgWidth=this.ImgObj.width;
  //取得图片的宽度 
  this.ImgHeight=this.ImgObj.height;
  //取得图片的高度
  if(this.AllowImgWidth!=0&&this.AllowImgWidth<this.ImgWidth) 
  this.ErrMsg=this.ErrMsg+"\n图片宽度超过限制。请上传宽度小于"+this.AllowImgWidth+"px的文件,当前图片宽度为"+this.ImgWidth+"px"; 
  if(this.AllowImgHeight!=0&&this.AllowImgHeight<this.ImgHeight) 
  this.ErrMsg=this.ErrMsg+"\n图片高度超过限制。请上传高度小于"+this.AllowImgHeight+"px的文件,当前图片高度为"+this.ImgHeight+"px"; 
 }
 this.ImgFileSize=Math.round(this.ImgObj.fileSize/1024*100)/100;
 //取得图片文件的大小 
 if(this.AllowImgFileSize!=0&&this.AllowImgFileSize<this.ImgFileSize) 
  this.ErrMsg=this.ErrMsg+"\n文件大小超过限制。请上传小于"+this.AllowImgFileSize+"KB的文件,当前文件大小为"+this.ImgFileSize+"KB"; 
 if(this.ErrMsg!="") 
 {
  this.ShowMsg(this.ErrMsg,false); 
  return false;
 }
 else 
  return true; 
 } 
 UpLoadFileCheck.prototype.ShowMsg=function(msg,tf)
 //显示提示信息 tf=false 显示错误信息 msg-信息内容 
 { 
 /*msg=msg.replace("\n","<li>"); 
 msg=msg.replace(/\n/gi,"<li>"); 
  */
 alert(msg);
 }
 function sleep(num) 
 { 
  var tempDate=new Date(); 
  var tempStr=""; 
  var theXmlHttp = new ActiveXObject( "Microsoft.XMLHTTP" ); 
  while((new Date()-tempDate)<num ) 
  { 
  tempStr+="\n"+(new Date()-tempDate); 
  try{ 
  theXmlHttp .open( "get", "about:blank?JK="+Math.random(), false ); 
  theXmlHttp .send(); 
  } 
  catch(e){;} 
  } 
  //containerDiv.innerText=tempStr; 
 return; 
 } 
 function c(obj)
 {
 var d=new UpLoadFileCheck(); 
 d.IsImg=true;
 d.AllowImgFileSize=100;
 d.CheckExt(obj)
 }
</script>
</head>
<body>
<input name="" type="file" onchange="c(this)"/>
</body>
</html>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
我也种棵OO树JXTree[js+css+xml]
Apr 02 Javascript
IE与Firefox在JavaScript上的7个不同句法分享
Oct 30 Javascript
jquery移动listbox的值原理及代码
May 03 Javascript
JavaScript实现的日期控件具体代码
Nov 18 Javascript
基于Javascript实现返回顶部按钮
Feb 29 Javascript
jQuery实现只允许输入数字和小数点的方法
Mar 02 Javascript
JavaScript中return用法示例
Nov 29 Javascript
浅析JavaScript的几种Math函数,random(),ceil(),round(),floor()
Dec 22 Javascript
解决Angular4项目部署到服务器上刷新404的问题
Aug 31 Javascript
JS实现继承的几种常用方式示例
Jun 22 Javascript
JS实现页面数据懒加载
Feb 13 Javascript
理解JavaScript中的对象
Aug 25 Javascript
js中setTimeout()与clearTimeout()用法实例浅析
May 12 #Javascript
js实现一个链接打开两个链接地址的方法
May 12 #Javascript
js实现鼠标经过表格行变色的方法
May 12 #Javascript
js比较日期大小的方法
May 12 #Javascript
js实现简单div拖拽功能实例
May 12 #Javascript
js实现两点之间画线的方法
May 12 #Javascript
jquery简单实现图片切换效果的方法
May 12 #Javascript
You might like
WHOIS类的修改版
2006/10/09 PHP
php获取中文拼音首字母类和函数分享
2014/04/24 PHP
php输入流php://input使用浅析
2014/09/02 PHP
PHP定时任务延缓执行的实现
2014/10/08 PHP
php和nginx交互实例讲解
2019/09/24 PHP
JS支持带x身份证号码验证函数
2008/08/10 Javascript
jquery在项目中做复选框时遇到的一些问题笔记
2013/11/17 Javascript
jquery的父子兄弟节点查找示例代码
2014/03/03 Javascript
window.open()实现post传递参数
2015/03/12 Javascript
Javascript页面跳转常见实现方式汇总
2015/11/28 Javascript
第一次接触神奇的前端框架vue.js
2016/12/01 Javascript
Redux 和 Mobx的选择问题:让你不再困惑!
2017/09/18 Javascript
微信小程序 循环及嵌套循环的使用总结
2017/09/26 Javascript
JS实现网页抢购功能(触发,终止脚本)
2017/11/27 Javascript
小程序点赞收藏功能的实现代码示例
2018/09/07 Javascript
浅谈Javascript常用正则表达式应用
2019/03/08 Javascript
element-ui树形控件后台返回的数据+生成组织树的工具类
2020/03/05 Javascript
[15:20]DOTA2亚洲邀请赛总决赛开幕式表演:羽泉献唱
2017/04/05 DOTA
Python中exit、return、sys.exit()等使用实例和区别
2015/05/28 Python
Python中正则表达式详解
2017/05/17 Python
详解Python装饰器
2019/03/25 Python
Python实现的矩阵转置与矩阵相乘运算示例
2019/03/26 Python
python导入不同目录下的自定义模块过程解析
2019/11/18 Python
python列表切片和嵌套列表取值操作详解
2020/02/27 Python
翻转数列python实现,求前n项和,并能输出整个数列的案例
2020/05/03 Python
python读取xml文件方法解析
2020/08/04 Python
Python pip install之SSL异常处理操作
2020/09/03 Python
使用HTML5原生对话框元素并轻松创建模态框组件
2019/03/06 HTML / CSS
Dockers美国官方网站:卡其裤、男士服装、鞋及配件
2016/11/22 全球购物
企业党员公开承诺书
2014/03/26 职场文书
优秀团员事迹材料
2014/12/25 职场文书
小学新教师个人总结
2015/02/05 职场文书
祝寿主持词
2015/07/02 职场文书
养成教育主题班会
2015/08/13 职场文书
解决Vue+SpringBoot+Shiro跨域问题
2021/06/09 Vue.js
Apache POI的基本使用详解
2021/11/07 Servers