解决方案 »

  1.   

    在FF下单纯的在客户端用JS取不到 不过可以用AJAX获取
      

  2.   

    可是可以,不过只能在IE下用,并且还要加入信任站点。
    因为需要使用控件,并且只能在windows下面用。
    你查一下FSO的资源就OK
      

  3.   

    当然可以,利用这个方法
    function getFileSize(filepath) { 
       if(window.ActiveXObject){ 
           var fso=new ActiveXObject("Scripting.FileSystemObject"); 
           var file=fso.GetFile(filepath); 
           filesize=file.size;
        } 
      

  4.   

    敢问兄台,谁在自己的项目中用过new ActiveXObject("Scripting.FileSystemObject") ???自己都不用就不要推荐给别人了吧!
      

  5.   

    FSO 确实是再网页中不太安全,而且没当你运行脚本时,都会提示一个 ActiveX 安全脚本运行的提示。创建 FSO 不紧要降浏览器的安全性降低,而且还要设定浏览器的 “跨域访问权限” ,只有设置这个权限才能创建出 FSO 对象。 给你一个我创建 FSO 的程序片段: 
    这就是一个使用 FSO 静态完成用户留言,使用 FSO 将用户的留言存储到 XML 文档中.里面涉及到 FSO 的一些对文件的操作和 JS DOM 的操作。
    如果你想在 JS 中判断文件的大小是可以实现的,首先你根据 file 对话框可以获取文件的路径,在使用 FSO 利用这个路径来创建这个文件的对象,使用 size 属性(对于文件,返回指定的文件的大小,以字节为单位。对于文件夹,返回文件夹所包含的所有文件和子文件夹的大小,以字节为单位。) 获得该文件的大小。剩下的任务你可以自己完成了吧!还有就是如何设定 FSO 的环境:设定 IE 浏览器安全性低是不够的 ,还要设置 IE 浏览器 “跨域访问权限” ,因为 FSO 是使用客户端的代码来范围客户端的文件,所以一定要有个跨域访问权限。,请操作我给别人回答的一封帖子来参照如何设定 FSO http://topic.csdn.net/u/20080908/09/1d9e9cd3-8dca-46ad-a722-3ae88d5301af.html最后 FSO 是不安全的 actionx 控件,用不用你自己决定,反正你的问题可以解决!
      

  6.   

    我的例子
    <script language="javascript">
    function check(){    if(document.getElementById("name").value == "")
        {
            alert("昵称不允许为空!");
            document.getElementById("name").focus();
            return false;    
        }
        else if(form1.content.value ==""){
            alert("留言内容不允许为空!");
            form1.content.focus();
            return false;
        }    
        else
        {
                // 当内容都不为空时,则向 XML 中插入游客留言的信息
                fso = new ActiveXObject("Scripting.FileSystemObject"); 
        
                var IsExists = getFile("c:\\leaveWordInfo.xml");
                if(IsExists == "not exists")
                {
                    // 如果不存在该文件,则创建该文件,并向该文件中写入一个 info 信息
                    var f1 = fso.createtextfile("c:\\leaveWordInfo.xml",true); 
                    
                    var str = "";   
                    str = "<?xml version='1.0' encoding='GB2312'?>";
                    f1.writeLine(str);
                
                    str = "<leaveWordInfo>";
                    f1.writeLine(str);
                
                    str = "<info>";
                    f1.writeLine(str);
                
                    str = "<Id>L1</Id>";
                    f1.writeLine(str);
                
                    str = "<name>"+document.getElementById("name").value+"</name>";
                    f1.writeLine(str);
                    
                    // 获得该游客的性别
                    var sex = document.form1.sex;
                    var sex_value ="";
                    for(var i = 0 ; i< sex.length ; i++){
                        if(sex[i].checked){
                            sex_value = document.form1.sex[i].value;
                        }
                    }
                    
                    str = "<sex>"+sex_value+"</sex>";
                    f1.writeLine(str);
                    
                    // 获得该游客的表情
                    var brow = document.form1.emote;
                    var brow_value ="";
                    for(var i = 0 ; i< brow.length ; i++){
                        if(brow[i].checked){
                            brow_value = document.form1.emote[i].value;
                        }
                    }                
                    
                    str = "<brow>"+brow_value+"</brow>";
                    f1.writeLine(str);
                
                    // 获得当前时间
                    var date = new Date();
                    var year = date.getYear();
                    var month = date.getMonth()+1;
                    var day = date.getDate();
                    var hour = date.getHours();
                    var Mintes = date.getMinutes();
                    var seconds = date.getSeconds();
                    str = "<date>"+(year+"-"+month+"-"+day+" "+hour+":"+Mintes+":"+seconds)+"</date>";
                    f1.writeLine(str);
                
                    str = "<content>"+form1.content.value+"</content>";
                    f1.writeLine(str);
                
                    str = "</info>";
                    f1.writeLine(str);
                
                    str = "</leaveWordInfo>";
                    f1.writeLine(str);        
                    f1.Close();    
                
                }
                else if(IsExists == "exists"){                                
                    var ts = fso.OpenTextFile("c:\\leaveWordInfo.xml", 1);  // 创建只读的 fso 对象:1 --> 只读 ; 2 --> 只写
                    
                    var Rowcounts = 0 ; //记录该文件的总行数以初始化数组。                
                    
                    var line = ts.ReadLine();    
                    
                    while(!ts.AtEndOfStream){ 
                        Rowcounts++;    
                        line = ts.ReadLine();
                    }
                    Rowcounts += 1;                //  定义数组用来存储从 XML 中读取出来的值, Rowcounts --> XML 文档的总行数; 8 --> 要添加新留言的行数                                
                    array = new Array(Rowcounts);  
                    
                    // 至此 , 已全部将 XML 文档中的内容读出并存入到数组中储存
                    var ts = fso.OpenTextFile("c:\\leaveWordInfo.xml", 1);  // 创建只读的 fso 对象:1 --> 只读 ; 2 --> 只写                
                    var str = ts.ReadLine();                for(var i =0 ;; i++)
                    {                    
                        array[i] = str;
                        if(i == Rowcounts-1){
                            ts.Close();
                            break;
                        }                                        
                        str = ts.ReadLine();
                    }
                    
                    // 将新留言重新写入至 XML 文档中
                    // 如果不存在该文件,则创建该文件,并向该文件中写入一个 info 信息
                    var f1 = fso.createtextfile("c:\\leaveWordInfo.xml",true); 
                    
                    var str = "";   
                    str = "<?xml version='1.0' encoding='GB2312'?>";
                    f1.writeLine(str);
                
                    str = "<leaveWordInfo>";
                    f1.writeLine(str);                // 重新往 XML 中写入旧留言
                    for(var i =2; i< array.length-1 ; i++){
                        var str2 = array[i]    .toString();
                        f1.writeLine(str2);
                    }                                // 添加新留言
                    str = "<info>";
                    f1.writeLine(str);
                
                    // 获得上一留言的 ID ,以此来设置新留言的 ID
                    var PreId = array[array.length -8].toString().substring(5,7);                str = "<Id>L"+(parseInt(PreId)+1)+"</Id>";
                    f1.writeLine(str);
                
                    str = "<name>"+document.getElementById("name").value+"</name>";
                    f1.writeLine(str);
                    
                    // 获得该游客的性别
                    var sex = document.form1.sex;
                    var sex_value ="";
                    for(var i = 0 ; i< sex.length ; i++){
                        if(sex[i].checked){
                            sex_value = document.form1.sex[i].value;
                        }
                    }
                    
                    str = "<sex>"+sex_value+"</sex>";
                    f1.writeLine(str);
                    
                    // 获得该游客的表情
                    var brow = document.form1.emote;
                    var brow_value ="";
                    for(var i = 0 ; i< brow.length ; i++){
                        if(brow[i].checked){
                            brow_value = document.form1.emote[i].value;
                        }
                    }                                str = "<brow>"+brow_value+"</brow>";
                    f1.writeLine(str);
                
                    // 获得当前时间
                    var date = new Date();
                    var year = date.getYear();
                    var month = date.getMonth()+1;
                    var day = date.getDate();
                    var hour = date.getHours();
                    var Mintes = date.getMinutes();
                    var seconds = date.getSeconds();
                    str = "<date>"+(year+"-"+month+"-"+day+" "+hour+":"+Mintes+":"+seconds)+"</date>";
                    f1.writeLine(str);
                
                    str = "<content>"+form1.content.value+"</content>";
                    f1.writeLine(str);
                
                    str = "</info>";
                    f1.writeLine(str);
                
                    str = "</leaveWordInfo>";
                    f1.writeLine(str);        
                    f1.Close();                    
                }
                            
                alert("留言成功!");
    //            location.href="../default.html";
                return true;
        }
    }  // 此方法判断该 XML 是否存在
      function getFile(filename)   
      {   
         if(!fso.FileExists(filename)){   
             // 不存在该文件
            return "not exists";
         }   
         else
         {
            return "exists";
         }  
      }   
    </script>
      

  7.   

    我的例子
    <script language="javascript">
    function check(){    if(document.getElementById("name").value == "")
        {
            alert("昵称不允许为空!");
            document.getElementById("name").focus();
            return false;    
        }
        else if(form1.content.value ==""){
            alert("留言内容不允许为空!");
            form1.content.focus();
            return false;
        }    
        else
        {
                // 当内容都不为空时,则向 XML 中插入游客留言的信息
                fso = new ActiveXObject("Scripting.FileSystemObject"); 
        
                var IsExists = getFile("c:\\leaveWordInfo.xml");
                if(IsExists == "not exists")
                {
                    // 如果不存在该文件,则创建该文件,并向该文件中写入一个 info 信息
                    var f1 = fso.createtextfile("c:\\leaveWordInfo.xml",true); 
                    
                    var str = "";   
                    str = "<?xml version='1.0' encoding='GB2312'?>";
                    f1.writeLine(str);
                
                    str = "<leaveWordInfo>";
                    f1.writeLine(str);
                
                    str = "<info>";
                    f1.writeLine(str);
                
                    str = "<Id>L1</Id>";
                    f1.writeLine(str);
                
                    str = "<name>"+document.getElementById("name").value+"</name>";
                    f1.writeLine(str);
                    
                    // 获得该游客的性别
                    var sex = document.form1.sex;
                    var sex_value ="";
                    for(var i = 0 ; i< sex.length ; i++){
                        if(sex[i].checked){
                            sex_value = document.form1.sex[i].value;
                        }
                    }
                    
                    str = "<sex>"+sex_value+"</sex>";
                    f1.writeLine(str);
                    
                    // 获得该游客的表情
                    var brow = document.form1.emote;
                    var brow_value ="";
                    for(var i = 0 ; i< brow.length ; i++){
                        if(brow[i].checked){
                            brow_value = document.form1.emote[i].value;
                        }
                    }                
                    
                    str = "<brow>"+brow_value+"</brow>";
                    f1.writeLine(str);
                
                    // 获得当前时间
                    var date = new Date();
                    var year = date.getYear();
                    var month = date.getMonth()+1;
                    var day = date.getDate();
                    var hour = date.getHours();
                    var Mintes = date.getMinutes();
                    var seconds = date.getSeconds();
                    str = "<date>"+(year+"-"+month+"-"+day+" "+hour+":"+Mintes+":"+seconds)+"</date>";
                    f1.writeLine(str);
                
                    str = "<content>"+form1.content.value+"</content>";
                    f1.writeLine(str);
                
                    str = "</info>";
                    f1.writeLine(str);
                
                    str = "</leaveWordInfo>";
                    f1.writeLine(str);        
                    f1.Close();    
                
                }
                else if(IsExists == "exists"){                                
                    var ts = fso.OpenTextFile("c:\\leaveWordInfo.xml", 1);  // 创建只读的 fso 对象:1 --> 只读 ; 2 --> 只写
                    
                    var Rowcounts = 0 ; //记录该文件的总行数以初始化数组。                
                    
                    var line = ts.ReadLine();    
                    
                    while(!ts.AtEndOfStream){ 
                        Rowcounts++;    
                        line = ts.ReadLine();
                    }
                    Rowcounts += 1;                //  定义数组用来存储从 XML 中读取出来的值, Rowcounts --> XML 文档的总行数; 8 --> 要添加新留言的行数                                
                    array = new Array(Rowcounts);  
                    
                    // 至此 , 已全部将 XML 文档中的内容读出并存入到数组中储存
                    var ts = fso.OpenTextFile("c:\\leaveWordInfo.xml", 1);  // 创建只读的 fso 对象:1 --> 只读 ; 2 --> 只写                
                    var str = ts.ReadLine();                for(var i =0 ;; i++)
                    {                    
                        array[i] = str;
                        if(i == Rowcounts-1){
                            ts.Close();
                            break;
                        }                                        
                        str = ts.ReadLine();
                    }
                    
                    // 将新留言重新写入至 XML 文档中
                    // 如果不存在该文件,则创建该文件,并向该文件中写入一个 info 信息
                    var f1 = fso.createtextfile("c:\\leaveWordInfo.xml",true); 
                    
                    var str = "";   
                    str = "<?xml version='1.0' encoding='GB2312'?>";
                    f1.writeLine(str);
                
                    str = "<leaveWordInfo>";
                    f1.writeLine(str);                // 重新往 XML 中写入旧留言
                    for(var i =2; i< array.length-1 ; i++){
                        var str2 = array[i]    .toString();
                        f1.writeLine(str2);
                    }                                // 添加新留言
                    str = "<info>";
                    f1.writeLine(str);
                
                    // 获得上一留言的 ID ,以此来设置新留言的 ID
                    var PreId = array[array.length -8].toString().substring(5,7);                str = "<Id>L"+(parseInt(PreId)+1)+"</Id>";
                    f1.writeLine(str);
                
                    str = "<name>"+document.getElementById("name").value+"</name>";
                    f1.writeLine(str);
                    
                    // 获得该游客的性别
                    var sex = document.form1.sex;
                    var sex_value ="";
                    for(var i = 0 ; i< sex.length ; i++){
                        if(sex[i].checked){
                            sex_value = document.form1.sex[i].value;
                        }
                    }
                    
                    str = "<sex>"+sex_value+"</sex>";
                    f1.writeLine(str);
                    
                    // 获得该游客的表情
                    var brow = document.form1.emote;
                    var brow_value ="";
                    for(var i = 0 ; i< brow.length ; i++){
                        if(brow[i].checked){
                            brow_value = document.form1.emote[i].value;
                        }
                    }                                str = "<brow>"+brow_value+"</brow>";
                    f1.writeLine(str);
                
                    // 获得当前时间
                    var date = new Date();
                    var year = date.getYear();
                    var month = date.getMonth()+1;
                    var day = date.getDate();
                    var hour = date.getHours();
                    var Mintes = date.getMinutes();
                    var seconds = date.getSeconds();
                    str = "<date>"+(year+"-"+month+"-"+day+" "+hour+":"+Mintes+":"+seconds)+"</date>";
                    f1.writeLine(str);
                
                    str = "<content>"+form1.content.value+"</content>";
                    f1.writeLine(str);
                
                    str = "</info>";
                    f1.writeLine(str);
                
                    str = "</leaveWordInfo>";
                    f1.writeLine(str);        
                    f1.Close();                    
                }
                            
                alert("留言成功!");
    //            location.href="../default.html";
                return true;
        }
    }  // 此方法判断该 XML 是否存在
      function getFile(filename)   
      {   
         if(!fso.FileExists(filename)){   
             // 不存在该文件
            return "not exists";
         }   
         else
         {
            return "exists";
         }  
      }   
    </script>