使用方式:只须要传入文件对象和容许上传的文件类型数组 返回上传文件的大小javascript
//获取浏览器 function getBrowserInfo(){ var agent = navigator.userAgent.toLowerCase(); return agent; } // 判断上传文件的类型和文件大小 function judgeFileType(fileObj,typeArr){ var fileEnd = fileObj.value.toLowerCase().substr(fileObj.value.lastIndexOf(".")); var isFileType = false; for(var i = 0;i < typeArr.length;i++){ if(fileEnd == typeArr[i]){ isFileType = true; break; } } if(isFileType){ var filesize; var browser = getBrowserInfo(); if(browser.indexOf("msie") > 0){ var regStr_ie = /msie [\d.]+;/gi ; var versionNum = (browser.match(regStr_ie)+"").replace(/[^0-9.]/ig,""); if(versionNum >= 10){ filesize = fileObj.files[0].size; } if(versionNum < 10){ try{ fileObj.select(); //fileObj.blur(); 嵌入框架下不能使用 若是不加会出现拒绝访问 document.getElementById("fileDiv").focus(); // 使用一个包含file上传框的div能够解决 var fso = new ActiveXObject("Scripting.FileSystemObject"); var filePath = document.selection.createRange().text; if(fso.FileExists(filePath)){ filesize = fso.GetFile(filePath).size; } }catch(e){ alert(e+"\n"+"若是错误为:Error:Automation 服务器不能建立对象;"+"\n"+"请按如下方法配置浏览器:"+"\n"+"请打开 【Internet选项-安全-Internet-自定义级别-ActiveX控件和插件-对未标记为可安全执行脚本的ActiveX控件初始化并执行脚本(不安全)-点击启用-肯定】"); return window.location.reload(); } } } //firefox //Chrome if(browser.indexOf("firefox") > 0 || browser.indexOf("chrome") > 0 ){ filesize = fileObj.files[0].size; } return filesize; }else{ alert("只能上传"+typeArr.toString()+"格式的文件,建议文件名不要有空格"); return 0; } }
Eg:html
html:java
<form id="voucherForm" enctype="multipart/form-data" > <div id="fileDiv"> 选择文件:<input type="file" name="myFile" id="Document_file" /> </div> <button type="button" onclick="submitBtn()">保存</button> </form>
js:ajax
function submitBtn(){ var fileObj = document.getElementById("Document_file"); var typeArr = [".doc",".docx",".xls",".xlsx",".txt",".pdf"]; var fileValue = fileObj.value; var fileSingleSize = 2 * 1024 * 1024; var fileSize; if(fileValue.length > 0){ fileSize = judgeFileType(fileObj,typeArr); } if(fileSize > fileSingleSize){ alert("文件大小不符合要求,单个文件限制2M以内"); return; } if(fileSize == 0){ return; } $("#voucherForm").ajaxSubmit({ type : "POST", url : url, success : function(jsonData){ console.log(jsonData); } }); }