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 相关文章推荐
打开超链需要“确认”对话框的方法
Mar 08 Javascript
我遇到的参数传递中 双引号单引号嵌套问题
Feb 11 Javascript
jquer之ajaxQueue简单实现代码
Sep 15 Javascript
正负小数点后两位浮点数实现原理及代码
Sep 06 Javascript
php实例分享之实现显示网站运行时间
May 20 Javascript
jQuery实现美观的多级动画效果菜单代码
Sep 06 Javascript
JavaScript表单验证实例之验证表单项是否为空
Jan 10 Javascript
浅谈react+es6+webpack的基础配置
Aug 09 Javascript
angularjs路由传值$routeParams详解
Sep 05 Javascript
vue路由守卫及路由守卫无限循环问题详析
Sep 05 Javascript
vue结合el-upload实现腾讯云视频上传功能
Jul 01 Javascript
vue Element-ui表格实现树形结构表格
Jun 07 Vue.js
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
ThinkPHP实现事务回滚示例代码
2014/06/23 PHP
9条PHP编程小知识及易犯的小错误
2015/01/22 PHP
实例介绍PHP中zip_open()函数用法
2019/02/15 PHP
JQuery优缺点分析说明
2010/06/09 Javascript
Javascript下IE与Firefox下的差异兼容写法总结
2010/06/18 Javascript
google jQuery 引用文件,jQuery 引用地址集合(jquery 1.2.6至jquery1.5.2)
2011/04/24 Javascript
原生Js页面滚动延迟加载图片实现原理及过程
2013/06/24 Javascript
JS教程:window.location使用方法的区别介绍
2013/10/04 Javascript
jtable列中自定义button示例代码
2013/11/21 Javascript
$(document).ready(function() {})不执行初始化脚本
2014/06/19 Javascript
Javascript基础教程之数组 array
2015/01/18 Javascript
jQuery数据检索中根据关键字快速定位GridView指定行的实现方法
2016/06/08 Javascript
基于javascript实现按圆形排列DIV元素(一)
2016/12/02 Javascript
JS失效 提示HTML1114: (UNICODE 字节顺序标记)的代码页 utf-8 覆盖(META 标记)的冲突的代码页 utf-8
2017/06/23 Javascript
webpack构建vue项目的详细教程(配置篇)
2017/07/17 Javascript
浅谈Express异步进化史
2017/09/09 Javascript
基于vue配置axios的方法步骤
2017/11/09 Javascript
jQuery AJAX 方法success()后台传来的4种数据详解
2018/08/08 jQuery
使用vue实现各类弹出框组件
2019/07/03 Javascript
vue递归获取父元素的元素实例
2020/08/07 Javascript
vue组件中传值EventBus的使用及注意事项说明
2020/11/16 Javascript
python好玩的项目—色情图片识别代码分享
2017/11/07 Python
解决Python requests库编码 socks5代理的问题
2018/05/07 Python
PatPat香港:婴童服饰和亲子全家装在线购物
2020/09/27 全球购物
美术专业学生个人自我评价
2013/09/19 职场文书
向领导表决心的话
2014/03/11 职场文书
中学优秀班主任事迹材料
2014/05/01 职场文书
岗位工作说明书
2014/07/29 职场文书
银行反四风对照检查材料
2014/09/29 职场文书
Python 多线程之threading 模块的使用
2021/04/14 Python
Vue+Element UI实现概要小弹窗的全过程
2021/05/30 Vue.js
python基础入门之普通操作与函数(三)
2021/06/13 Python
JavaScript高级程序设计之变量与作用域
2021/11/17 Javascript
Python采集爬取京东商品信息和评论并存入MySQL
2022/04/12 Python
Go语言安装并操作redis的go-redis库
2022/04/14 Golang
Java实现贪吃蛇游戏的示例代码
2022/09/23 Java/Android