怎么用js判断一个文件的大小啊?(不限制文件类型)。要兼容各种浏览器。而且不能用ActiveXObject对象。拜托啊

解决方案 »

  1.   

    可以借助flashjs可以和flash交互
      

  2.   

    不是说不要用activex吗?
    flash应该不算吧!
      

  3.   

    各位大哥,纯js不能办到吗。如果能用flash能够办到,并且能够浏览器兼容的话,给个源代码好不,拜托了!!! 
      

  4.   

    不用activex,或flash之类的东东,没有办法。
      

  5.   

    以前IE(<=6.0)可以用Image对象来获取文件大小。但是随着IE版本的封锁,IE也没法进行文件大小判断了。目前流行的大多是Flash方法。Flash可以说是安装率最多的插件了,所以基本上可以适应你的需要。并且现在有一些Flash的开源项目可以用,你可以查查看
      

  6.   

    不用activeX,只有flash了,只要能看flash的浏览器均支持。16楼说的是对的,以前可以new一个Image对象,但现在IE7以至于以后的版本,new之后,嘿嘿,自己看看吧,会报错。
      

  7.   

    img标签"dynsrc"这个属性:dynsrc可以用来插入各种多媒体,格式可以是Wav、Avi、AIFF、AU、MP3、Ra、Ram等等。url为音频或视频文件及其路径,可以是相对路径或绝对路径。 示例:<img dynsrc="xxxx.mp3"> 这样我们就可以根据dynsrc动态赋值任何类型文件的路径,在javascript中根据Image对象本身的fileSize属性来得到文件的大小。 Javascript代码 
    <script type="text/javascript">    
    function getFileSize(filePath)    
    {    
       var image=new Image();    
       image.dynsrc=filePath;    
       alert(image.fileSize);    
    }    
    </script>    
    <body>    
    <INPUT TYPE="file" NAME="file" SIZE="30" onchange="getFileSize(this.value)">    
    </body>  
    这个好像就是他们说的用img的方法吧,lz试试
      

  8.   

    以前的浏览器无法判断任何类型的文件的大小,但是,在新的浏览器(Firefox3.6)中,这些功能已经提供了。,参考 Firefox3.6 对多文件选择、上载和精确进度条的支持
    http://blog.csdn.net/net_lover/archive/2010/01/22/5222971.aspx其他浏览器暂时还不支持
      

  9.   

    浏览器安全性过高,把所有的path都加了fakepath所以依靠文件路径判断的应该都行不通。用ActiveX怎么判断呢?
      

  10.   

    兼容各种浏览器。而且不能用ActiveXObject对象  ????IE为什么不用能ActiveXObject?????
    下面代码在chrome safari 试过了可以用。<html>
    <head> 
    <script type="text/javascript">
      var isIE = /msie/i.test(navigator.userAgent) && !window.opera;       
      function fileChange(target) {   
        
        var fileSize = 0;        
        if (isIE && !target.files) {    
          var filePath = target.value;    
          var fileSystem = new ActiveXObject("Scripting.FileSystemObject");       
          var file = fileSystem.GetFile (filePath);    
          fileSize = file.Size;
    alert(fileSize);
        } else {   
         fileSize = target.files[0].size; 
    console.log(fileSize);   
         }  
         var size = fileSize / 1024;
         if(size>10000){
          alert("附件不能大于10M");
         }
    }  
    </script>
    </head>
    <body>
    <input type="file" name="contractFileName"  style="width: 500px;" onchange="fileChange(this);"/>
    </body>
    </html>