如何在javascript中将数据添加到文件?

时间:2012-04-17 16:06:24

标签: javascript override using activexobject

我想创建注册表单并使用ActiveXObject将数据写入data.txt。 我写的是

<script type="text/javascript">
    function WriteFile()
    {
       var fso  = new ActiveXObject("Scripting.FileSystemObject");
       var fh = fso.CreateTextFile("E:\\Test.txt", true);
       x=document.getElementById("name").value;
       y=document.getElementById("password").value;
       fh.WriteLine(x+"#"+y);
       fh.Close();
    }
</script>
<BODY>
<form>
    <input type="text" id="name"/>
    <input type="text" id="password"/>
    <input type="button" value="Sign Up" id="write" onclick="WriteFile()"/>
</form>
</BODY>

当我尝试这种方式时,每次单击“注册”按钮时,新数据都会覆盖以前的数据。我尝试使用fh.AppendLine(x + "#" + y),但它没有用。

有人可以帮助我如何添加数据,而不是覆盖数据吗?

5 个答案:

答案 0 :(得分:1)

很久以前我做过这样的事情......(当我使用Windows时)我认为这是因为你用CreateTextFile的新文件替换文件所以如果文件已经存在你需要这样做:

function AppendLine()
{
   var fso  = new ActiveXObject("Scripting.FileSystemObject");
   var fh = fso.OpenTextFile("E:\\Training Asslab\\Advance\\Write to File\\Test.txt", 8, True);
   x=document.getElementById("name").value;
   y=document.getElementById("password").value;
   fh.WriteLine(x+"#"+y);
   fh.Close();
}

答案 1 :(得分:1)

我认为,

CreateTextFile会覆盖当前文件。 在创建之前,您应该使用FileExists检查其存在。 如果确实存在,则可以使用OpenTextFile。

以下是相关的documentation

答案 2 :(得分:1)

免责声明您绝不应该使用这些功能。他们只在IE中工作并且非常糟糕。

我认为您的问题源于使用CreateTextFile。您应该使用OpenTextFile并将第二个参数设置为8。这将允许追加。

答案 3 :(得分:1)

使用OpenTextFile方法创建标记和ForAppending模式而不是CreateTextFile

但是,请注意,您不仅要将自己限制在非常旧的IE版本和受信任区域内,而且还要将文件保留在用户的本地驱动器上,而不是放在服务器上。因此,您无法对此“注册数据”执行任何操作。

答案 4 :(得分:0)

使用("E:\\Test.txt", 8);。 8是附加的模式。 因此,我想知道你是否和我有同样的功课,因为我也有同样的问题,但我被困在AvtiveXObject