兼容FF、chorme、ie的获取文件大小

<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
<script type="text/javascript">
  var agent = window.navigator.userAgent;
  var isIE = /msie/i.test(agent) && !window.opera;      
  function fileChange(target) {  
    var fileSize = 0;       
    if (isIE && !target.files) { 
        //如果是ie6以下的版本,直接fileSize可以获取到大小
        if( agent.indexOf("MSIE 5.0")>0 || agent.indexOf("MSIE 6.0")>0

){
         var   img   =   new   Image();  
         var filename = target.value;    
            img.src   =   filename; 
            fileSize = img.fileSize;
   } else{
            //ie7版本以上需要打开安全设置
      try {   
        var fso,f,fname,fsize;
        var flength=1000; //设置上传的文件最大值(单位:kb),超过此值则不上传。
        var filename = target.value;
        fso=new ActiveXObject("Scripting.FileSystemObject");
        f=fso.GetFile(filename);//文件的物理路径
        fname=fso.GetFileName(filename);//文件名(包括扩展名)
        fileSize=f.Size; //文件大小(bit)
  
       }
      catch(e)
       {
        alert(e+"\n 跳出此消息框,是由于你的activex控件没有设置好,\n"+
        "你可以在浏览器菜单栏上依次选择\n"+
        "工具->internet选项->\"安全\"选项卡->自定义级别,\n"+
        "打开\"安全设置\"对话框,把\"对没有标记为安全的\n"+
        "ActiveX控件进行初始化和脚本运行\",改为\"启动\"即可");
                 return false;
         }
        }   
    } else {  
        //火狐版本下的文件大小获取
       fileSize = target.files[0].size;   
     } 
     var size = fileSize / 1024;  
     if(size>1000){
       alert("附件不能大于1M"); 
     } 
  document.getElementById("txtfilename").value=fileSize;

</script>
</head>
<body>
<input type="file" name="contractFileName"  style="width: 500px;"

onchange="fileChange(this);"/>
<input type="text" id="txtfilename" />
</body>
</html>
 

posted on 2011-10-09 18:39  天黑黑  阅读(293)  评论(0)    收藏  举报

导航