如何从客户端访问和读取文件?

时间:2012-05-27 18:21:35

标签: javascript html web

我有一个文件foo.txt,其中包含以下行:

row1
row2
row3

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

5 个答案:

答案 0 :(得分:4)

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

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

如果您想从本地系统拉入,首先需要上传机制。

<强>更新

同步执行:

$.ajax({
    url: "your_file.txt",
    async: false,
    success: function(data){ alert(data); }
});

答案 1 :(得分:3)

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

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

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

您服务器上的文件:

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


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

答案 2 :(得分:2)

您可以将File API用于supported browsers

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

答案 3 :(得分: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向其添加内容并在需要时将其发送回服务器等。

答案 4 :(得分: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");
            }