在做批量上传时,使用的是js动态创建fileupload控件,在创建出来的控件里上传文件时,判断长传的大小,超出时,进行提示并清空当前的fileupload
一、单个上传文件时的Js判断大小验证
<script language="javascript" type="text/javascript">
var templength=0;//保存所有的长度的变量
var flength=10240; //设置上传的文件最大值(单位:kb),超过此值则不上传。
function getFileSize(filename,e)
{
try {
var fso,f,fname,fsize;
fso=new ActiveXObject("Scripting.FileSystemObject");
f=fso.GetFile(filename);//文件的物理路径
fname=fso.GetFileName(filename);//文件名(包括扩展名)
fsize=f.Size; //文件大小(bit)
fsize=fsize/1024;//计算当前上传文件的大小,
if(fsize>1024)//如果单次上传的文件大小超过1MB
{
alert("您上传的文件大小为:"+(fsize/1024).toFixed(2)+"MB\n超过单个最大限度1MB,不允许上传 "); //进行提示
clearFileInputByOuterHTML(''+e+'');//删除掉当前上传的文件
return false;
}
else
{
templength+=fsize;//计算总值
if(templength>flength)//如果长传的文件的总的大小超过了指定的flength。进行指示,将清空所有的上传控件
{
alert("您上传的文件大小为:"+(templength/1024).toFixed(2)+"MB\n超过最大限度"+flength/1024+"MB,不允许上传 ");
templength=0;
clearall();
return false;
}
}
}
catch(e)
{
alert(e+"\n 跳出此消息框,是由于你的activex控件没有设置好,\n"+
"你可以在浏览器菜单栏上依次选择\n"+
"工具->internet选项->\"安全\"选项卡->自定义级别,\n"+
"打开\"安全设置\"对话框,把\"对没有标记为安全的\n"+
"ActiveX控件进行初始化和脚本运行\",改为\"启动\"即可");
return false;
} return true;
}
function clearFileInputByOuterHTML(fileId) //这个方法是根据Id清空上传控件的方法
{
var fileobj = document.getElementById(fileId);
fileobj.outerHTML = fileobj.outerHTML;
}
function clearall()//清空上传控件的方法
{
clearFileInputByOuterHTML('FileUpload1');
}
</script>
二、动态上传文件时的Js判断大小验证
<script type="text/javascript">
var id=0;
function addFile() {
var tab=document.getElementById("_container");
var row=document.createElement("tr");
var cell=document.createElement("td");
cell.innerHTML+=' ';
var f = document.createElement("input");
f.setAttribute("id", (id+1)) ;
f.setAttribute("type", "file")
f.setAttribute("name", "File")
f.setAttribute("size", "17")
f.onchange=function(){
var fso,fpath,fname,fsize;
try
{
fso=new ActiveXObject("Scripting.FileSystemObject");
fpath=fso.GetFile(f.value);//文件的物理路径
fname=fso.GetFileName(f.va