小编典典

如何读取本地文本文件?

all

我试图通过创建一个函数来编写一个简单的文本文件阅读器,该函数接受文件的路径并将每一行文本转换为一个字符数组,但它不起作用。

function readTextFile() {
  var rawFile = new XMLHttpRequest();
  rawFile.open("GET", "testing.txt", true);
  rawFile.onreadystatechange = function() {
    if (rawFile.readyState === 4) {
      var allText = rawFile.responseText;
      document.getElementById("textSection").innerHTML = allText;
    }
  }
  rawFile.send();
}

这里出了什么问题?

在从以前的版本中稍微更改代码之后,这似乎仍然不起作用,现在它给了我一个XMLHttpRequest异常101。

我在 Firefox 上对此进行了测试并且可以正常工作,但是在 Google Chrome 中它只是成功了,并且它一直给我一个异常
101。我怎样才能让它不仅可以在 Firefox 上工作,而且可以在其他浏览器上工作(尤其是铬合金)?


阅读 79

收藏
2022-03-14

共1个答案

小编典典

您需要检查状态 0(当使用 本地加载文件时XMLHttpRequest,您不会得到返回的状态,因为它不是来自 a Webserver

function readTextFile(file)
{
    var rawFile = new XMLHttpRequest();
    rawFile.open("GET", file, false);
    rawFile.onreadystatechange = function ()
    {
        if(rawFile.readyState === 4)
        {
            if(rawFile.status === 200 || rawFile.status == 0)
            {
                var allText = rawFile.responseText;
                alert(allText);
            }
        }
    }
    rawFile.send(null);
}

file://在您的文件名中指定:

readTextFile("file:///C:/your/path/to/file.txt");
2022-03-14