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>