2

我有一个包含以下行的文件 foo.txt:

row1
row2
row3

我想在我的 HTML 中创建一个指向该文件的链接,并在客户端使用 Javascript 读取它。有解决方案吗?

4

5 回答 5

4

如果文件在您的服务器上,您可以使用以下内容:

jQuery.get('your_file.txt',function(data){
  alert(data);
});

如果你想从你的本地系统中提取,你首先需要一个上传机制。

更新:

同步执行:

$.ajax({
    url: "your_file.txt",
    async: false,
    success: function(data){ alert(data); }
});
于 2012-05-27T18:24:11.450 回答
3

文件不在您自己的服务器上:

由于安全原因,客户端 JavaScript 无法做到这一点。想象一下,您正试图访问客户端的文件系统。

虽然在 Internet Explorer 中有文件系统对象的选项,但通常在客户端机器上进行 I/O 不是一个好主意,除非没有损害它的目的。

服务器上的文件:

但是,如果您打算从自己的域/空间中读取文件,则可以使用@Fluidbyte 指出的AJAX 。


您还可以在支持它的浏览器中使用html5 的 File API 。

于 2012-05-27T18:23:11.827 回答
3

您可以将File API用于支持的浏览器

如果没有,请使用传统的“上传到服务器并从服务器读取”方法。这也可以在 AJAX 中完成。

于 2012-05-27T18:29:46.740 回答
1

我建议您将文件存储在客户端浏览器的 HTML5 Localstorage 中,因为它是行,您可以将其保存在一个简单的循环中

localStorage.setItem("key1", "value1");  
localStorage["key1"] = "value1";
...

编写一个服务器端脚本,逐行读取并输出javascript代码。

然后稍后阅读它,您只需要:

function listAllItems(){  
    for (i=0; i<=localStorage.length-1; i++)  
    {  
        key = localStorage.key(i);  
        val = localStorage.getItem(key);  
    }   
}

每个网站通常会获得 5MB 的 Localstorage 空间。您可以编写一个函数来更新 Localstorage 附加一些内容并在需要时将其发送回服务器等。

于 2012-05-27T18:55:51.303 回答
0
            var oFReader = new FileReader();
            oFReader.readAsText(document.getElementById("fileImportOrExport").files[0]);
            oFReader.onload = function (oFREvent) {
                var fileImportOrExportContent = oFREvent.target.result;
            }
            oFReader.onerror = function (OFREvent) {
                alert("Error in reading");
            }
于 2016-03-03T09:56:27.643 回答