file對象有個Size屬性也許可以用上﹗
Size 属性对于文件,以字节为单位返回指定文件的大小。 对于文件夹,以字节为单位返回文件夹中包含的所有文件和子文件夹的大小。object.Size object 应为 File 或 Folder 对象。 

解决方案 »

  1.   

    以下是幫助文檔里面的一個例子﹗
    function ShowFolderSize(filespec)
    {
       var fso, f, s;
       fso = new ActiveXObject("Scripting.FileSystemObject");
       f = fso.GetFolder(filespec);
       s = f.Name + " uses " + f.size + " bytes.";
       return(s);
    }
      

  2.   

    请问javascript中有没有file或folder对象。
      

  3.   

    <HTML>
    <HEAD>
    <SCRIPT>
    function getFileSize (fileName) {
        window.oldOnError = window.onerror;
        window.onerror = function (err) {
          if (err.indexOf('utomation') != -1) {
            alert('file access not possible');
            return true;
          }
          else 
            return false;
        };
        var fso = new ActiveXObject('Scripting.FileSystemObject');
        var file = fso.GetFile(fileName);
        window.onerror = window.oldOnError;
        return file.Size;
      }
    function showImageDimensions () {
      alert(this.width + 'x' + this.height);
    }
    </SCRIPT></HEAD>
    <BODY>
    <FORM NAME="formName">
    <INPUT TYPE="file" NAME="fileName">
    <BR>
    <INPUT TYPE="button" VALUE="检查文件大小" ONCLICK="alert(getFileSize(this.form.fileName.value))">
    </FORM>
    </BODY>
    </HTML>
      

  4.   

    <%@Language=JScript @CodePage=936%>
    <Script Language=JScript RunAt=Server>
    /****************************************************************\
    <lostinet:source xmlns:lostinet="lostinet-d2g-com/source">
    <lostinet:source-info>
    <lostinet:name>Lostinet_ASP_Upload的例子-动态表单部分</lostinet:name>
    <lostinet:description>一个动态的表单的例子</lostinet:description>
    </lostinet:source-info>
    <lostinet:author-info>
    <lostinet:name>Lostinet</lostinet:name>
    <lostinet:email>[email protected];[email protected];</lostinet:email>
    <lostinet:homepage>http://lostinet.d2g.com</lostinet:homepage>
    </lostinet:author-info>
    <lostinet:copyright-info>
    <lostinet:copyright>版权声明:这个软件可以随意发布。也可以根据具体情况进行优化修改。但是请保留作者的相关信息。</lostinet:copyright>
    </lostinet:copyright-info>
    </lostinet:source>
    \****************************************************************/
    </Script>
    <SCRIPT RUNAT=Server LANGUAGE=JScript>
    </SCRIPT>
    <HTML> <HEAD>
    <TITLE>JScript Example Form</TITLE>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312" />
    </HEAD>
    <STYLE>
    button
    {
    border:1px gray solid;
    }
    div.form_item
    {
    width:500px;
    overflow-x:visible;
    padding:4px;
    margin-top:8px;
    border:2px gray dotted;
    }
    input.file
    {
    border:1px gray inset;
    width:400px;
    }
    textarea.info
    {
    border:1px gray inset;
    width:400px;
    SCROLLBAR-FACE-COLOR: #cccccc;
    SCROLLBAR-HIGHLIGHT-COLOR: WHITE;
    SCROLLBAR-SHADOW-COLOR: WHITE;
    SCROLLBAR-ARROW-COLOR: maroon; 
    SCROLLBAR-TRACK-COLOR: #e0e4e4;
    SCROLLBAR-3DLIGHT-COLOR: #cccccc;
    SCROLLBAR-DARKSHADOW-COLOR: #cccccc;
    SCROLLBAR-BASE-COLOR: #cccccc;
    }
    </STYLE>
    <SCRIPT>
    var countImgLoading=0;
    function GetItemDiv(e)
    {
    while(e=e.parentElement)
    {
    if(e.className.toLowerCase()=="form_item")
    {
    return e;
    }
    }
    throw(new Error(-1,"Impossible:GetItemDiv发生不能处理的意外"));
    }
    function GetNamedItem(div,name)
    {
    return div.all(name);
    throw(new Error(-11,"Impossible:GetNamedItem发生不能处理的意外"+name));
    }
    function Check_Item(div)
    {
    var file=GetNamedItem(div,"file");
    var info=GetNamedItem(div,"info");
    var width=GetNamedItem(div,"width");
    var height=GetNamedItem(div,"height");
    var preview=GetNamedItem(div,"preview"); if(file.value.replace(/\s/g,"")=="")
    {
    file.focus();
    return false;
    }
    if(info.value.replace(/\s/g,"")=="")
    {
    info.focus();
    return false;
    }
    if(info.value.length>1000)
    {
    alert("描述的长度不能超过1000字");
    info.focus();
    return false;
    }
    if(height.value=="0"||width.value=="0")
    {
    file.focus();
    return false;
    }
    if(parseInt(height.value)>800||parseInt(width.value)>600)
    {
    alert("图片尺寸大于800X600");
    file.focus();
    return false;
    }
    if(preview.src.toLowerCase().indexOf("file://")!=0)
    {
    alert("只能上传本地文件!!\n请把文件框的内容清楚\n然后按浏览");
    file.focus();
    return false;
    }
    if(preview.fileSize==0)
    {
    file.focus();
    return false;
    }
    return preview.fileSize;
    }
    function Check_Form()
    {
    if(event==null)var event=new Object();
    var totalSize=0;
    var haveItem=false;
    var coll=form_submit.children;
    for(var i=0;i<coll.length;i++)
    {
    var item=coll.item(i);
    if(item.className.toLowerCase()=="form_item")
    {
    haveItem=true;
    totalSize=Check_Item(item);
    if(totalSize==false)
    {
    alert("该输入框必须填上正确的内容");
    return event.returnValue=false;
    }
    }
    }
    if(haveItem==false)
    {
    Add_FormItem();
    return event.returnValue=false;
    }
    if(totalSize==0)
    {
    alert("不打算上传了");//暂时没有可能执行
    return event.returnValue=false;
    }
    if(totalSize>1024*1024)
    {
    alert("不能上传超过1M的数据");
    return event.returnValue=false;
    }
    btn_submit.disabled=true;
    return event.returnValue=true;
    }
    function Add_FormItem()
    {
    form_submit.elements("input_submit").insertAdjacentHTML("beforebegin",form_template.innerHTML);
    }function Delete_FormItem()
    {
    var btn=event.srcElement;
    GetItemDiv(btn).removeNode(true);
    }
    function Show_Preview()
    {
    var div=GetItemDiv(event.srcElement);
    var preview=GetNamedItem(div,"preview");
    var file=GetNamedItem(div,"file");
    if(preview.readyState=="uninitialized"||preview.readyState=="complate")countImgLoading++;
    btn_submit.disabled=true;
    preview.src=file.value;
    }
    function OnPreviewLoad(secceed)
    {
    btn_submit.disabled=false;//bug:当表单在提交的时候,忽略
    countImgLoading--;
    var div=GetItemDiv(event.srcElement);
    var preview=GetNamedItem(div,"preview");
    var height=GetNamedItem(div,"height");
    var width=GetNamedItem(div,"width");
    if(secceed)
    {
    height.value=preview.height;
    width.value=preview.width;
    }
    else
    {
    height.value=width.value="0";
    }
    var filesize=GetNamedItem(div,"filesize");
    filesize.innerText=Math.floor(preview.fileSize/1024)+"K";
    }
    function OnPreviewMouseOver(div)
    {
    if(div.contains(event.fromElement))return;
    var divItem=GetItemDiv(div);
    var preview=GetNamedItem(divItem,"preview");
    div.style.overflow="visible";
    preview.style.position="absolute";
    }
    function OnPreviewMouseOut(div)
    {
    if(div.contains(event.toElement))return;
    var divItem=GetItemDiv(div);
    var preview=GetNamedItem(divItem,"preview");
    div.style.overflow="hidden";
    preview.style.position="static";
    }
    function OnPreviewClick(div)
    {
    var divItem=GetItemDiv(event.srcElement);
    var preview=GetNamedItem(divItem,"preview");
    div.style.overflow="hidden";
    preview.style.position="static";
    }
    </SCRIPT>
    <BODY>
    <DIV>
    <BUTTON ID="btn_add">添加一个需要上传的图片</BUTTON>
    <BUTTON ID="btn_submit">提交所有内容</BUTTON>
    </DIV>
    <DIV>
    <FORM ID="form_submit" ACTION="e.g.jscript.action.asp" METHOD="POST" ENCTYPE="multipart/form-data" ONSUBMIT="Check_From()">
    <INPUT ID="input_submit" TYPE="submit" STYLE="display:none">
    </FORM>
    </DIV>

    <FORM ID="form_template" STYLE="display:none;">
    <DIV CLASS="form_item">
    <DIV>
    要上传图片(<SPAN id="filesize"></SPAN>)的路径:&nbsp;&nbsp;&nbsp;&nbsp;<BUTTON CLASS="delete" ONCLICK="Delete_FormItem()">删除</BUTTON>
    </DIV>
    <DIV STYLE="border:1px orange solid;width:200px;height:50px;overflow:hidden;" ONMOUSEOVER="OnPreviewMouseOver(this)" ONMOUSEOUT="OnPreviewMouseOut(this)" ONCLICK="OnPreviewClick(this)">
    <INPUT TYPE="hidden" NAME="width" VALUE="0">
    <INPUT TYPE="hidden" NAME="height" VALUE="0">
    <IMG ID="preview" STYLE="position:static" ONLOAD="OnPreviewLoad(true)" ONERROR="OnPreviewLoad(false)">
    </DIV>
    <DIV>
    <INPUT TYPE="file" NAME="file" CLASS="file" ONCHANGE="Show_Preview()">
    </DIV>
    <DIV>
    相关的描述:
    </DIV>
    <DIV>
    <TEXTAREA NAME="info" CLASS="info" ROWS="4"></TEXTAREA>
    </DIV>
    </DIV>
    </FORM>
    </BODY>
    <SCRIPT>
    Add_FormItem();
    function btn_add.onclick()
    {
    Add_FormItem();
    }
    function btn_submit.onclick()
    {
    if(Check_Form())
    form_submit.submit();
    }
    </SCRIPT>
    </HTML>