今天遇上此问题的校验问题,可网上说明此问题的解决办法都不甚详细,折腾了半天终于基本成形,分享给大家,望大家能予以完善。代码如下:
fileTest.jsp
=============================================================
<%@ page language="java" contentType="text/html; charset=gbk"
pageEncoding="gbk"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>测试文件</title>
<Script language="JavaScript" type="text/javascript">
function checkFileSize(filesizeKb){
try{
if(document.all){//页面内所有元素的一个集合,可判断是否是IE
var filename = document.getElementById("filename").value;
var fso = new ActiveXObject("Scripting.FileSystemObject");
if(!fso.FileExists(filename)){
alert("上传文件不存在,请重新输入!");
document.execCommand("undo");//对网页的所有表单进行撤销的
return false;
}
var file = fso.getfile(filename);
var fileSize = file.size; //单位:b
var fileSizeKb = fileSize/1024;//转换为kb
if(parseFloat(fileSizeKb)>parseFloat(filesizeKb)){
alert("当前文件大小为"+parseFloat(fileSizeKb)+"kb,最大上传文件大小为"+filesizeKb+"kb!");
document.execCommand("undo");//对网页的所有表单进行撤销的
return false;
}else{
//alert("当前文件大小为"+parseFloat(fileSizeKb)+"kb!");
}
formname.submit();
}
} catch(e){
if(e.description=="Automation服务器不能创建对象"){
alert("文件大小验证未生效!\r\n启用此验证,请如下修改浏览器设置:工具->Internet选项->安全->本地 Intranet->自定义级别->ActiveX控件和插件->对没有标记为安全的ActiveX控件进行初始化和脚本运行 ->启用!");
formname.submit();
}else{
//alert(e.description);
//可能出现“拒绝访问”异常,刷新后又无此异常
window.location.reload();
}
}
}
</script>
</head>
<body>
<form name="formname" action="test2.jsp"><input type="file" name="filename" id="filename"><br>
<input type="button" value="上传文件" οnclick="checkFileSize(45)" ><br>
</form></body>
</html>