1. 程式人生 > >js相容ie和chrome的檔案上傳大小校驗

js相容ie和chrome的檔案上傳大小校驗

js 檔案上傳功能在ie8和chrome下的語法會有不一樣的地方,取決於瀏覽器對file檔案物件的獲取不一樣。ie通過FileSystemObject此物件獲取,而chrome獲取$(“input[name=’file’]”).file[0].size獲取。

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<script type="text/javascript" src="./jquery-1.8.0.min.js"></script
>
<script type="text/javascript"> var isIE = /msie/i.test(navigator.userAgent) && !window.opera; function fileChange(target,id) { var fileSize = 0; var filetypes =[".jpg",".png",".rar",".txt",".zip",".doc",".ppt",".xls",".pdf",".docx",".xlsx"]; var filepath = target.value; var
filemaxsize = 1024*2;//2M var size; // //檔案型別校驗 // if(filepath){ // var isnext = false; // var fileend = filepath.substring(filepath.indexOf(".")); // if(filetypes && filetypes.length>0){ // for(var i =0; i<filetypes.length;i++){ // if(filetypes[i]==fileend){
// isnext = true; // break; // } // } // } // if(!isnext){ // alert("不接受此檔案型別!"); // target.value =""; // return false; // } // }else{ // return false; // } //ie8瀏覽器下的判斷 if (isIE && !target.files) { var filePath = target.value; var fileSystem = new ActiveXObject("Scripting.FileSystemObject"); if(!fileSystem.FileExists(filePath)){ alert("附件不存在,請重新輸入!"); return false; } var file = fileSystem.GetFile (filePath); size = file.Size / 1024; if(size>filemaxsize){ alert("附件大小不能大於"+filemaxsize/1024+"M!"); var obj = document.getElementById('testFile') ; obj.select(); document.selection.clear(); return false; } } else { //chrome瀏覽器的檔案大小校驗 size = target.files[0].size / 1024; if(size>filemaxsize){ alert("附件大小不能大於"+filemaxsize/1024+"M!"); target.value ="" return false; } } if(size<=0){ alert("附件大小不能為0M!"); target.value =""; return false; } }
</script> </head> <body> <input type="file" id="testFile" name="contractFileName" style="width: 500px;" onchange="fileChange(this);"/> </body> </html>