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 相关文章推荐
JavaScript 学习笔记(十二) dom
Jan 21 Javascript
使用CSS和jQuery模拟select并附提交后取得数据的代码
Oct 18 Javascript
键盘上一张下一张兼容IE/google/firefox等浏览器
Jan 28 Javascript
jquery中each方法示例和常用选择器
Jul 08 Javascript
javascript实现下班倒计时效果的方法(可桌面通知)
Jul 10 Javascript
JS继承之借用构造函数继承和组合继承
Sep 07 Javascript
原生js调用json方法总结
Feb 22 Javascript
解决webpack dev-server不能匹配post请求的问题
Aug 24 Javascript
跨域解决之JSONP和CORS的详细介绍
Nov 21 Javascript
JS实现的自定义map方法示例
May 17 Javascript
微信小程序 多行文本显示...+显示更多按钮和收起更多按钮功能
Sep 26 Javascript
es6数组includes()用法实例分析
Apr 18 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
解析PHP 5.5 新特性
2013/07/02 PHP
php curl post 时出现的问题解决
2014/01/30 PHP
ThinkPHP自动填充实现无限级分类的方法
2014/08/22 PHP
PHP中使用CURL获取页面title例子
2015/01/07 PHP
PHP中的替代语法介绍
2015/01/09 PHP
php创建无限级树型菜单
2015/11/05 PHP
laravel ORM 只开启created_at的几种方法总结
2018/01/29 PHP
php对象工厂类完整示例
2018/08/09 PHP
用javascript连接access数据库的方法
2006/11/17 Javascript
createElement动态创建HTML对象脚本代码
2008/11/24 Javascript
js变量、作用域及内存详解
2014/09/23 Javascript
JavaScript学习笔记之JS函数
2015/01/22 Javascript
jQuery Real Person验证码插件防止表单自动提交
2015/11/06 Javascript
jQuery移动端图片上传组件
2016/06/12 Javascript
jQuery插件 Jqplot图表实例
2016/06/18 Javascript
Vue之Watcher源码解析(1)
2017/07/19 Javascript
聊聊JS动画库 Velocity.js的使用
2018/03/13 Javascript
用Node写一条配置环境的指令
2019/11/14 Javascript
Python的SimpleHTTPServer模块用处及使用方法简介
2018/01/22 Python
Python装饰器基础概念与用法详解
2018/12/22 Python
OpenCV模板匹配matchTemplate的实现
2019/10/18 Python
tensorflow使用L2 regularization正则化修正overfitting过拟合方式
2020/05/22 Python
Django权限控制的使用
2021/01/07 Python
canvas 阴影和图形变换的示例代码
2018/01/02 HTML / CSS
Otticanet英国:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/02/10 全球购物
Currentbody西班牙:美容仪专家
2019/09/28 全球购物
希腊香水和化妆品购物网站:Parfimo.gr
2019/10/03 全球购物
德国的大型美妆个护电商:Flaconi
2020/06/26 全球购物
英文版餐饮业求职信
2013/10/18 职场文书
优秀中专生推荐信
2013/11/17 职场文书
学生会主席事迹材料
2014/01/28 职场文书
珍惜水资源建议书
2014/03/12 职场文书
铣床操作工岗位职责
2014/06/13 职场文书
党支部特色活动方案
2014/08/20 职场文书
关于有小孩的离婚协议书
2014/10/26 职场文书
2015年医生个人工作总结
2015/04/25 职场文书