js验证上传门类
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格式文件,请重新选择"); } }
综上:两者是差不多的,任选一种即可,都属于可扩展的