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 相关文章推荐
js数组转json并在后台对其解析具体实现
Nov 20 Javascript
详解微信小程序开发之下拉刷新 上拉加载
Nov 24 Javascript
jQuery实现可拖拽3D万花筒旋转特效
Jan 03 Javascript
深入理解Javascript中的valueOf与toString
Jan 04 Javascript
JavaScript实现选中文字提示新浪微博分享效果
Jun 15 Javascript
使用Node.js实现ORM的一种思路详解(图文)
Oct 24 Javascript
Vue精简版风格指南(推荐)
Jan 30 Javascript
使用Vue构建可重用的分页组件
Mar 26 Javascript
vue axios 简单封装以及思考
Oct 09 Javascript
微信公众号平台接口开发 获取微信服务器IP地址方法解析
Aug 14 Javascript
jQuery/JS监听input输入框值变化实例
Oct 17 jQuery
原生js实现随机点餐效果
Dec 10 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
使用Apache的rewrite技术
2006/06/22 PHP
php入门小知识
2008/03/24 PHP
使用GROUP BY的时候如何统计记录条数 COUNT(*) DISTINCT
2011/04/23 PHP
php判断两个浮点数是否相等的方法
2015/03/14 PHP
header与缓冲区之间的深层次分析
2016/07/30 PHP
PHP自动生成缩略图函数的源码示例
2019/03/18 PHP
js日期相关函数总结分享
2013/10/15 Javascript
浅析offsetLeft,Left,clientLeft之间的区别
2013/11/30 Javascript
jquery改变tr背景色的示例代码
2013/12/28 Javascript
JQuery对表单元素的基本操作使用总结
2014/07/18 Javascript
JavaScript定义变量和变量优先级问题探讨
2014/10/11 Javascript
javascript设置和获取cookie的方法实例详解
2016/01/05 Javascript
基于SpringMVC+Bootstrap+DataTables实现表格服务端分页、模糊查询
2016/10/30 Javascript
canvas学习之API整理笔记(二)
2016/12/29 Javascript
ES6中箭头函数的定义与调用方式详解
2017/06/02 Javascript
详解在vue-cli项目中安装node-sass
2017/06/21 Javascript
node.js使用redis储存session的方法
2018/09/26 Javascript
nodejs 递归拷贝、读取目录下所有文件和目录
2019/07/18 NodeJs
vue 翻页组件vue-flip-page效果
2020/02/05 Javascript
微信小程序实现上拉加载功能示例【加载更多数据/触底加载/点击加载更多数据】
2020/05/29 Javascript
Python实现的基数排序算法原理与用法实例分析
2017/11/23 Python
Python爬虫包BeautifulSoup简介与安装(一)
2018/06/17 Python
Python如何优雅删除字符列表空字符及None元素
2020/06/25 Python
基于HTML5 Canvas 实现商场监控实例详解
2017/11/20 HTML / CSS
泰国健康和美容服务预订网站:GoWabi
2019/06/03 全球购物
如何写一个自定义标签
2012/12/28 面试题
个人对照检查材料
2014/02/12 职场文书
护理专业毕业生自我鉴定总结
2014/03/24 职场文书
公司会议策划方案
2014/05/17 职场文书
毕业证代领委托书
2014/09/26 职场文书
三人合伙协议书范本
2014/10/29 职场文书
外国人来华邀请函
2015/01/31 职场文书
2015年教师节感恩寄语
2015/03/23 职场文书
2015年毕业实习工作总结
2015/05/29 职场文书
淮海战役观后感
2015/06/11 职场文书
大学体育课感想
2015/08/10 职场文书