js验证上传图片的方法

本文实例讲述了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程序设计有所帮助。

(0)

相关推荐

  • 上传的js验证(图片/文件的扩展名)

    js 验证上传图片 复制代码 代码如下: var ImgObj=new Image();//建立一个图像对象 varAllImgExt=".jpg|.jpeg|.gif|.bmp|.png|"//全部图片格式类型 varFileObj,ImgFileSize,ImgWidth,ImgHeight,FileExt,ErrMsg,FileMsg,IsImg//全局变量图片相关属性 //以下为限制变量 var AllowExt=""; //允许上传的文件类型ŀ为无限制每个

  • Javascript 验证上传图片大小[客户端]

    需求分析: 在做上传图片的时候,如果不限制上传图片大小,后果非常的严重.那么我们怎样才可以解决一个棘手的问题呢?有两种方式: 1)后台处理: 也就是AJAX POST提交到后台,把图片上传到服务器上,然后获得该图片大小做处理. 2)前台处理: 也就是利用Javascript获取该图片大小. 显然第一种方式,很不好.因为需要把文件先上传到服务器上,如果文件很大的话,在加上网不是很快,需要等待好长时间,治标不治本. 功能解析: 在这里我只介绍IE与FireFox两个浏览器的不同做法. IE6: 关键

  • js 图片上传前大小长宽验证代码

    脚本如下: function getimginfo() { var img=new Image(); img.src=document.all.file.value; var sInfo="Width:"+img.width+ "px Height:"+img.height+ "px Size:"+getsizestring(img.fileSize); alert(sInfo); } function getsizestring(len) {

  • javascript 客户端验证上传图片的大小(兼容IE和火狐)

    在我 上一篇帖子 (译文 ) 中,谈到了各个浏览器究竟会在什么情况下弹出脚本失控提示,对于Internet Explorer 来说,当浏览器执行了数量过多的语句时就会停止执行脚本,而其他的浏览器,则是持续执行脚本超过一定时间的时候就会给出提示.而我们要探讨的核心问题,不是这些浏览器如果探测失控的脚本,而是我们如何才可以让脚本运行的更快一些,从而避免这些警告 . 脚本失控基本上有以下四个方面的原因: 在循环中执行了太多的操作. 臃肿的函数体 过多的递归 过多的 DOM 调用 在这篇帖子中,我将会把

  • 多个上传文件用js验证文件的格式和大小的方法(推荐)

    html部分: <dsp:form action="${originatingRequest.requestURI}" method="post" enctype="multipart/form-data"> <dsp:input type="file" bean="ReturngoodsFormHandler.uploadedFile1" id="uploadedFile1&q

  • Javascript验证上传图片大小[前台处理]

    需求分析: 在做上传图片的时候,如果不限制上传图片大小,后果非常的严重.那么我们怎样才可以解决一个棘手的问题呢?有两种方式: 1)后台处理: 也就是AJAX POST提交到后台,把图片上传到服务器上,然后获得该图片大小做处理. 2)前台处理: 也就是利用Javascript获取该图片大小. 显然第一种方式,很不好.因为需要把文件先上传到服务器上,如果文件很大的话,在加上网不是很快,需要等待好长时间,治标不治本. 功能解析: 在这里我只介绍IE与FireFox两个浏览器的不同做法. IE6: 关键

  • 真正好用的js验证上传文件大小的简单方法

    最近使用到一个文件上传功能,发现恶意上传一个2G文件时,后台处理响应较慢,遂想到能否使用js来进行客户端的验证.但查阅网上多处资料,均使用 ActiveXObject("Scripting.FileSystemObject"); 的方法,该方法需要将Internet选项中安全级别提高,启用一个系统本身不推荐的选项,会出现如下非常不友好的提示: 所以这边并没有用到,而是寻求其他方法. 这边新的思路是img标签中的dynsrc属性. 在FireFox.Chrome浏览器中可以根据docum

  • javascript验证上传文件的类型限制必须为某些格式

    复制代码 代码如下: //验证文件的格式 function validateFile(){ var fileObject=$("#filename"); var errorObject=$("#error"); var filepath=fileObject.val(); var fileArr=filepath.split("//"); var fileTArr=fileArr[fileArr.length-1].toLowerCase().s

  • JS简单验证上传文件类型的方法

    本文实例讲述了JS简单验证上传文件类型的方法.分享给大家供大家参考,具体如下: function checkType(){ //得到上传文件的值 var fileName=document.getElementById("file_logo").value; //返回String对象中子字符串最后出现的位置. var seat=fileName.lastIndexOf("."); //返回位于String对象中指定位置的子字符串并转换为小写. var extensi

  • Node.js开发教程之基于OnceIO框架实现文件上传和验证功能

    OnceIO 是 OnceDoc 企业内容(网盘)的底层Web框架,它可以实现模板文件.静态文件的全缓存,运行起来完全不需要I/O操作,并且支持客户端缓存优化,GZIP压缩等(只在第一次压缩),拥有非常好的性能,为您节约服务器成本.它的模块化功能,可以让你的Web进行分布式存储,即一个扩展包里即包含前端.后端和数据库定义,只需通过添加/删除目录的方式就可实现功能删减,实现真正的模块化扩展.这里是介绍如何使用OnceIO的一系列文章. 在这一章节中,我们将为大家演示如何使用 OnceIO 实现文件

随机推荐