js验证上传类型

很多时候都需要验证一下上传类型,比如有的只需要上传文件,则图片就不能上传,有的只要求上传图片,那么文件就不能上传,正常上传的html写法:

法一:

 

<span id="spanpic"><input type="file" name="picUrl" id="picUrl" onchange='chkfilepic();'/>
</span><span id="picUrl_error"></span>
				

 

 

首先触发的是chkfilepic()这个事件,

function chkfilepic(){
    var filevalue=$("#picUrl").val();
    if(!checkImgType(filevalue)){
    	alert("只能上传'.gif','.jpg','.jpeg','.png','.bmp'格式的图片",unblock);
	$("#spanpic").html(
"<input type='file' name='picUrl' id='picUrl' onchange='chkfilepic()'/>");
    }
}
//验证的js
var right_type=new Array(".gif",".jpg",".jpeg",".png",".bmp");//这个地方可以扩展
function checkImgType(fileURL)
{
	 //本程序用来验证后缀,如果还有其它格式,可以添加在right_type;
	 var right_typeLen=right_type.length;
	 var imgUrl=fileURL.toLowerCase();
	 var postfixLen=imgUrl.length;
	 var len4=imgUrl.substring(postfixLen-4,postfixLen);
	 var len5=imgUrl.substring(postfixLen-5,postfixLen);
	 for (var i=0;i<right_typeLen;i++){
		  if((len4==right_type[i])||(len5==right_type[i])){
		   	return true;
		  }
	 }
}

 法二:

<input type="file" id="myfile" name="myfile" onchange="checkFile()"/>

 触发的事件是checkFile()事件

String.prototype.endsWith=function(s){
	 if(s==null||s==""||this.length==0||s.length>this.length){  
	       return false;  
	  }            
	   if(this.substring(this.length-s.length)==s){  
	        return true;  
	     }else{  
	        return false;  
	    }  
	        return true;  
	    }
		
	function checkFile() {
	        var location = $('#myfile').val();
	       	if (location.endsWith('doc') || location.endsWith('docx')
      || location.endsWith('xls')|| location.endsWith('xlsx') || location.endsWith('ppt') 
      || location.endsWith('pdf')) {
	        	document.forms['form1'].submit();
	      	}else{
	        	alert("文件格式错误,附件仅支持doc、docx、xls、xlsx、ppt和pdf格式文件,请重新选择");
	      	}
	  }

 综上:两者是差不多的,任选一种即可,都属于可扩展的

你可能感兴趣的:(js)