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 相关文章推荐
juqery 学习之三 选择器 层级 基本
Nov 25 Javascript
javascript跨域刷新实现代码
Jan 01 Javascript
关于setInterval、setTimeout在jQuery中的使用注意事项
Sep 28 Javascript
JS的千分位算法实现思路
Jul 31 Javascript
使用简洁的jQuery方法实现隔行换色功能
Jan 02 Javascript
javascript使用正则表达式检测IP地址
Dec 03 Javascript
jQuery中animate动画第二次点击事件没反应
May 07 Javascript
JavaScript中使用Math.floor()方法对数字取整
Jun 15 Javascript
angular.js分页代码的实例
Jul 27 Javascript
响应式框架Bootstrap栅格系统的实例
Dec 19 Javascript
vue中如何实现后台管理系统的权限控制的方法步骤
Sep 05 Javascript
Ajax异步刷新功能及简单案例
Nov 20 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新手上路(十三)
2006/10/09 PHP
PHP中for循环语句的几种变型
2007/03/16 PHP
php实现随机生成易于记忆的密码
2015/06/19 PHP
浅谈PHP的反射API
2017/02/26 PHP
PHP切割汉字的常用方法实例总结
2019/04/27 PHP
Yii2框架中一些折磨人的坑
2019/12/15 PHP
Js 获取当前日期时间及其它操作实现代码
2021/03/04 Javascript
利用js实现遮罩以及弹出可移动登录窗口
2013/07/08 Javascript
一个js导致的jquery失效问题的解决方法
2013/11/27 Javascript
原生js实现类似弹窗抖动效果
2015/04/02 Javascript
jquery+html5制作超酷的圆盘时钟表
2015/04/14 Javascript
jQuery中closest和parents的区别分析
2015/05/07 Javascript
浅谈JavaScript的Polymer框架中的事件绑定
2015/07/29 Javascript
Javascript实现快速排序(Quicksort)的算法详解
2015/09/06 Javascript
Angularjs整合微信UI(weui)
2016/03/15 Javascript
Bootstrap3制作自己的导航栏
2016/05/12 Javascript
JavaScript中数组Array方法详解
2017/02/27 Javascript
vue 设置proxyTable参数进行代理跨域
2018/04/09 Javascript
JavaScript实现的DOM树遍历方法详解【二叉DOM树、多叉DOM树】
2018/05/07 Javascript
jQuery模拟html下拉多选框的原生实现方法示例
2019/05/30 jQuery
关于vue组件事件属性穿透详解
2019/10/28 Javascript
VUE中V-IF条件判断改变元素的样式操作
2020/08/09 Javascript
Java与Python两大幸存者谁更胜一筹呢
2018/04/12 Python
对Python中的@classmethod用法详解
2018/04/21 Python
Python利用正则表达式实现计算器算法思路解析
2018/04/25 Python
利用python实现AR教程
2019/11/20 Python
Anaconda+VSCode配置tensorflow开发环境的教程详解
2020/03/30 Python
Django Admin设置应用程序及模型顺序方法详解
2020/04/01 Python
python 写一个水果忍者游戏
2021/01/13 Python
酒店总经理欢迎词
2014/01/08 职场文书
优秀求职信范文分享
2014/01/26 职场文书
小学毕业感言300字
2014/02/19 职场文书
中级会计职业生涯规划书
2014/03/01 职场文书
快餐公司创业计划书
2014/04/29 职场文书
世界名著读书笔记
2015/06/25 职场文书
Python答题卡识别并给出分数的实现代码
2021/06/22 Python