Javascript / JQuery本地文件系统

时间:2014-10-06 12:05:43

标签: javascript jquery html ajax xml

我遇到的问题是通过Web浏览器创建XML文件并能够从中读取/写入。 多个浏览器都存在这方面的问题,我似乎无法找到有效的解决方案。

我正在创建一个在字段中显示XML数据的CMS。然后我想读取这些输入元素的值,然后使用Javascript或JQuery覆盖XML文件。

XML文件将存储在Web服务器上,客户端PC将通过服务器上的网页访问CMS,然后读取/写入XML。

下面的代码让您了解IM尝试做什么:

 var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        var fso = new ActiveXObject("Scripting.FileSystemObject");
        var FILENAME ="xml.xml"; //<---- In Current Directory on Web server. 

        var file = fso.CreateTextFile(FILENAME, true);
        file.WriteLine('<?xml version="1.0" encoding="utf-8"?>\n');
        file.WriteLine('<Seating_Plan>\n');


        var table = document.getElementById("table_assoc");
        var rCount = table.rows.length;

        for (var i = 1; i < rCount; i++) {

            var id = table.rows[i].cells[0].children[0].value;
            var deptcode = table.rows[i].cells[1].children[0].value;
            var name = table.rows[i].cells[2].children[0].value;
            var role = table.rows[i].cells[3].children[0].value;
            var desc = table.rows[i].cells[4].children[0].value;
            var image = table.rows[i].cells[5].children[0].value;
            var asdir = table.rows[i].cells[6].children[0].value;

            file.WriteLine('<Person id="' + id + '"><Dept>' + deptcode + '</Dept><Name>' + name + '</Name><Description>' + desc + '</Description><Role>' + role + '</Role><Image><image href="' + image + '"/></Image><AssociateDir><AssociateDir href="' + asdir + '"/></AssociateDir></Person>');
        }

        file.WriteLine('</Seating_Plan>');
        file.Close();
    }

然而,仅在访问本地系统而非服务器上的网页时才有效。通过:&#34; file:// C:......&#34;而不是:

http://localhost/admin.html

最好的方法是什么?

任何帮助将不胜感激。 非常感谢! AJ

1 个答案:

答案 0 :(得分:0)

我怀疑你在这里误解了一些东西:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var FILENAME ="xml.xml"; //<---- In Current Directory on Web server.

网络浏览器无法访问服务器的文件系统。该ActiveX对象可能允许在当前主机上进行文件系统访问,但它不会在其他主机上允许它。如果没有错误并且浏览器允许ActiveX对象与本地文件系统交互,那么我敢打赌它在本地文件系统上成功创建文件。 (在任何恰好是浏览器进程的当前工作目录的情况下,因为没有指定目录。)

要与服务器文件系统上的文件进行交互,您需要使用服务器端代码。