在前台通过javascript我想实现对上传附件大小的判断,实现对上传附件的控制,那位大哥知道,请为小弟解释一下,谢谢!在线急等-------

解决方案 »

  1.   

    第一种方法是利用IE控件
    <html> 
    <input type="file" name="file1" onchange="ShowSize(this.value)"> 
    <script language="JavaScript"> 
    <!-- 
    function ShowSize(files) 

    var fso,f; 
    fso=new ActiveXObject("Scripting.FileSystemObject"); 
    f=fso.GetFile(files); 
    if(f.size>1024*4){
    alert(f.size+" Bytes"); 
    }

    //--> 
    </script> 
    </html>第二种方法是利用IE下,Image对象的属性,如:fileCreatedDate、fileModifiedDate、fileSize、fileUpdatedDate、filters
    限制:<input type="text" size="4" value="10" name="fileSizeLimit" id="fileSizeLimit"/> K
    <input type="file" name="file1" id="file1" size="40" onchange="changeSrc(this)"/>
    <img src="about:blank" id="fileChecker" alt="test" height="18"/>
    <script type="text/javascript">
    var oFileChecker = document.getElementById("fileChecker");
    function changeSrc(filePicker)
    {
        oFileChecker.src = filePicker.value;
    }
    oFileChecker.onreadystatechange = function ()
    {
         if (oFileChecker.readyState == "complete")
         {
            checkSize();
         }
    }
    function checkSize()
    {
         var limit = document.getElementById("fileSizeLimit").value * 1024;
         if (oFileChecker.fileSize > limit)
         {
            alert("too large");
         }
         else
         {
            alert("ok");
         }
    }
    </script>JS实现多个上传附件的FILE文件域代码
    <style type="text/css"> .file { font: 10pt; color: black; } </style>
    <script language="javascript">
          function addFile() {
               var fileDiv = document.all['fileDiv'];
               var strHtml = '<span><input type="file">&nbsp;&nbsp;<button onclick="removeFile(parentNode);">删除</button><br></span>';
               fileDiv.innerHTML += strHtml;
          }
          
          function removeFile(obj) {
               obj.removeNode(true);
          }
    </script>
    <form enctype="multipart/form-data">
          <div id="fileDiv"></div>
          <a href="javascript:void(addFile());" class="file">添加附件</a>
    </form>
      

  2.   

    我用你第一种的方法会提示Automation 服务器不能创建对象,我用的是IE8
    这是代码:
        function ShowSize(files){  
    var fso,f;  
    fso=new ActiveXObject("Scripting.FileSystemObject");  
    f=fso.GetFile(files);  
    if(f.size>1024*4){
    alert(f.size+" Bytes");  
    }
    } 调用时:<input type="file" name="file" id="file" size="10" onkeydown="event.returnValue=false" onchange="ShowSize(this.value)"/>能够解释一下吗?老板催的很紧!谢谢!
      

  3.   

    楼主看下
    我觉得最好的办法 还是ajax 。
      

  4.   

    哪位高手出来解决下啊,我这几天也是在搞这个东西,烦死了...我也想过用AJAX上传,可不会用...
    看了淘宝店上传产品图片功能.是可以实现的,看了下他们的代码,一头雾水....问题是不知怎么在IE里加载本地图片,然后再得出大小...淘宝好像用addclass()加载的,没用过这东西,不懂..怎么加载...有没有高手去看看淘宝的代码来给个解决...
      

  5.   

    你用JS做啊,为什么不用那个上传控件做啊,JS我也不会
      

  6.   

    淘宝的是通过第三方控件来实现的。如果楼主需要实现这个功能的话,只能借助于第三方控件来实现。或者是FLASH的或者是ActiveX的。