zoukankan      html  css  js  c++  java
  • 客户端用javascript获取文件大小

    客户端用javascript获取文件大小

    1 ie实现代码如下:

    <script type="text/javascript" language="javascript">

        function getFileSize(fileName)

        { 

           if(document.all)//判断是否是IE浏览器

           { 

              window.oldOnError = window.onerror;         

              window.onerror = function(err)  

              { 

                  if(err.indexOf('Automation')!=-1)

                  { 

                     alert('没有访问文件的权限');                 

                     return true;             

                  }           

                  else

                  {   

                     return false;

                  }         

               } 

            var fso = new ActiveXObject('Scripting.FileSystemObject'); 

            var file = fso.GetFile(fileName);         

            window.onerror = window.oldOnError; 

            return file.Size;

            }

        } 

        </script>

    2 ff ie6,7,8

        function checkFileSize(){

           var agent      = window.navigator.userAgent;

           var fileupload = document.getElementById("upfile");

           var isIE7 = agent.indexOf('MSIE 7.0') != -1;

           var isIE8 = agent.indexOf('MSIE 8.0') != -1;

           var maxSize = 2000000;

           try{

           //火狐获取路径 

               if (agent.indexOf("Firefox") >= 1) {

                   var fileSize = fileupload.files[0].fileSize;               

               } else if (isIE7 || isIE8) {  //IE7和IE8获得文件路径

                   fileupload.select();

                   filepath = document.selection.createRange().text;

                   var aa = new ActiveXObject("Scripting.FileSystemObject"); 

                   var fileSize = aa.GetFile(filepath).size;              

               } else { //IE6获得文件路径

                   filepath = fileupload.value; 

                   var aa = new ActiveXObject("Scripting.FileSystemObject"); 

                   var fileSize = aa.GetFile(filepath).size;                

               } 

               if(fileSize > maxSize) {

                  alert("上传文件不可超过2MB!");

                  return false;

               }

           }catch(e){

               alert("请修改IE浏览器ActiveX安全设置为启用~!");

               return false;

           }    

           return true;   

        }   

     

    *【常见问题】Automation 服务器不能创建对象*

    【解决方法】

     第一步:浏览器-->工具-->Internet选项-->安全-->Internet的自定义级别-->安全级别设为"中",启用"对没有标记为安全的ActiveX控件进行

     

    初始化和脚本运行"

     第二步:接第一步选择"受信任的站点"-->站点-->去掉要求进行"服务器验证(https:)"前面的勾,然后添加运行上面js代码的站点到受信任的区

     

    域,例如:http://localhost

     另外:如果用户遇到不能修改IE中Internet选项的安全级别时,解决方法是先打开注册表编辑器,找到

     

    "HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternet Settingsones3"分支,

    在右侧窗口中将"MinLevel"修改为"10000"(十六进制)后就可以在IE属性中设置较低的安全级别了。

     

    亲测方案可行,但是需要做安全配置,这个对于我们程序员是可以的,当时我们不能要求用户也都像这样去设置

    3 一个只是用于ie6的方法(不用安全配置)

    直接上代码:

        var browser=navigator.appName;

     

        var b_version=navigator.appVersion;

     

        var version=b_version.split(";");

     

        var trim_Version=version[1].replace(/[ ]/g,"");

     

        if(browser=="Microsoft Internet Explorer" && trim_Version=="MSIE6.0"){

     

            var file = $('#file1')[0];

            var filePath = file.value;

            var image=new Image();

            image.dynsrc=filePath;

            filesize=image.fileSize;

            alert(filesize);

     

        } 

    dynsrc属性只有在Ie6中适用,在以上版本中都摒弃了。

    4 高级浏览器

    var fileSize = document.getElementById("#file").size;

    console.log(fileSize);

  • 相关阅读:
    Windows下PHP开启mcrypt扩展和SSL(OpenSSL)扩展支持
    MyBatis 学习笔记
    试用百度云计算平台
    TCP三次握手及四次挥手详细图解
    Java开发中的23种设计模式详解
    Extjs4.1.0_从入门到精通
    SQLite3命令操作大全
    带你了解 HBase 数据模型和 HBase 架构
    让数据库无惧灾难,华为云GaussDB同城双集群高可用方案正式发布!
    论文阅读丨神经清洁: 神经网络中的后门攻击识别与缓解
  • 原文地址:https://www.cnblogs.com/lecheng/p/5917117.html
Copyright © 2011-2022 走看看