JS 파일 크기 판단 실현 코드

6507 단어
방법 1. ActiveX 컨트롤 을 이용 하여 다음 과 같이 실현 합 니 다.
 
  
<br>function getFileSize(filePath) <br>{ <br>var fso = new ActiveXObject("Scripting.FileSystemObject"); <br>alert(" :"+fso.GetFile(filePath).size); <br>} <br>




이 방법 은 IE 에서 사용 할 수 있 습 니 다. 부족 한 점 은 안전 알림 이 있 습 니 다. 파일 이름 을 'hta' 로 바 꾸 면 안전 알림 을 차단 합 니 다.
방법 2, img 의 dynsrc 속성 이용:
 
  
<br>function getFileSize(filePath) <br>{ <br>var image=new Image(); <br>image.dynsrc=filePath; <br>alert(image.fileSize); <br>} <br>




이 방법 은 IE6 에서 사용 할 수 있 으 며 IE7, IE8, Firefox, chrome 에 서 는 사용 할 수 없습니다.
방법 3, img 의 fileSize 를 이용 하여:
 
  
<br>var ImgObj=new Image(); // <br>var AllImgExt=".jpg|.jpeg|.gif|.bmp|.png|"// <br>var FileObj,ImgFileSize,ImgWidth,ImgHeight,FileExt,ErrMsg,FileMsg,HasCheked,IsImg// <br>// <br>var AllowExt=".jpg|.gif|.doc|.txt|" // ? "|" <br>//var AllowExt=0 <br>var AllowImgFileSize=70; // 0 :KB <br>var AllowImgWidth=500; // ? :px( ) <br>var AllowImgHeight=500; // ? :px( ) <br>HasChecked=false; <br>function CheckProperty(obj) // <br>{ <br>FileObj=obj; <br>if(ErrMsg!="") // <br>{ <br>ShowMsg(ErrMsg,false); <br>return false; // <br>} <br>if(ImgObj.readyState!="complete") // <br>{ <br>setTimeout("CheckProperty(FileObj)",500); <br>return false; <br>} <br>ImgFileSize=Math.round(ImgObj.fileSize/1024*100)/100;// <br>ImgWidth=ImgObj.width // <br>ImgHeight=ImgObj.height; // <br>FileMsg="
:"+ImgWidth+"*"+ImgHeight+"px"; <br>FileMsg=FileMsg+"
:"+ImgFileSize+"Kb"; <br>FileMsg=FileMsg+"
:"+FileExt; <br>if(AllowImgWidth!=0&&AllowImgWidth<ImgWidth) <br>ErrMsg=ErrMsg+"
。 "+AllowImgWidth+"px , "+ImgWidth+"px"; <br>if(AllowImgHeight!=0&&AllowImgHeight<ImgHeight) <br>ErrMsg=ErrMsg+"
。 "+AllowImgHeight+"px , "+ImgHeight+"px"; <br>if(AllowImgFileSize!=0&&AllowImgFileSize<ImgFileSize) <br>ErrMsg=ErrMsg+"
。 "+AllowImgFileSize+"KB , "+ImgFileSize+"KB"; <br>if(ErrMsg!="") <br>ShowMsg(ErrMsg,false); <br>else <br>ShowMsg(FileMsg,true); <br>} <br>ImgObj.onerror=function(){ErrMsg='
!'} <br>function ShowMsg(msg,tf) // tf=true tf=false msg- <br>{ <br>msg=msg.replace("
","<li>"); <br>msg=msg.replace(/
/gi,"<li>"); <br>if(!tf) <br>{ <br>document.all.UploadButton.disabled=true; <br>FileObj.outerHTML=FileObj.outerHTML; <br>MsgList.innerHTML=msg; <br>HasChecked=false; <br>} <br>else <br>{ <br>document.all.UploadButton.disabled=false; <br>if(IsImg) <br>PreviewImg.innerHTML="<img src='"+ImgObj.src+"' width='60' height='60'>" <br>else <br>PreviewImg.innerHTML=" "; <br>MsgList.innerHTML=msg; <br>HasChecked=true; <br>} <br>} <br>function CheckExt(obj) <br>{ <br>ErrMsg=""; <br>FileMsg=""; <br>FileObj=obj; <br>IsImg=false; <br>HasChecked=false; <br>PreviewImg.innerHTML=" "; <br>if(obj.value=="")return false; <br>MsgList.innerHTML=" ..."; <br>document.all.UploadButton.disabled=true; <br>FileExt=obj.value.substr(obj.value.lastIndexOf(".")).toLowerCase(); <br>if(AllowExt!=0&&AllowExt.indexOf(FileExt+"|")==-1) // <br>{ <br>ErrMsg="
。 "+AllowExt+" , "+FileExt; <br>ShowMsg(ErrMsg,false); <br>return false; <br>} <br>if(AllImgExt.indexOf(FileExt+"|")!=-1) // , <br>{ <br>IsImg=true; <br>ImgObj.src=obj.value; <br>CheckProperty(obj); <br>return false; <br>} <br>else <br>{ <br>FileMsg="
:"+FileExt; <br>ShowMsg(FileMsg,true); <br>} <br>} <br>function SwitchUpType(tf) <br>{ <br>if(tf) <br>str='<input type="file" name="file1" onchange="CheckExt(this)" style="width:180px;">' <br>else <br>str='<input type="text" name="file1" onblur="CheckExt(this)" style="width:180px;">' <br>document.all.file1.outerHTML=str; <br>document.all.UploadButton.disabled=true; <br>MsgList.innerHTML=""; <br>} <br>











IE, FireFox, chrome 은 모두 사용 할 수 있 지만 그림 파일 의 크기 만 판단 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기