【问题标题】:How do I read in a local text file with javascript?如何使用 javascript 读取本地文本文件?
【发布时间】:2012-03-18 06:05:42
【问题描述】:

我正在尝试使用在本地选择一个文件并逐行读取其中的文本以解释它。我的程序旨在读取文本文件并从中读取问题以制作应试程序。该文件不应上传,只能在本地读取。如果该解决方案仅适用于 chrome 和 firefox 也没关系。

我已经尝试过很多事情,但到目前为止,我似乎看到的是出于安全原因,这是不可能的,或者是这样,但它不能正常工作。我

这是我当前的代码: http://pastebin.com/uKvEfvZZ

【问题讨论】:

标签: javascript file-io


【解决方案1】:

这是demo

html:

<input type="file" id="fileinput" multiple />

js:

function readMultipleFiles(evt) {
    //Retrieve all the files from the FileList object
    var files = evt.target.files;

    if (files) {
        for (var i = 0, f; f = files[i]; i++) {
            var r = new FileReader();
            r.onload = (function (f) {
                return function (e) {
                    var contents = e.target.result;
                    alert(contents);
                };
            })(f);
            r.readAsText(f);
        }
    } else {
        alert("Failed to load files");
    }
}
document.getElementById('fileinput').addEventListener('change', readMultipleFiles, false);​

【讨论】:

  • 我之前使用过类似的代码,显然我有一些错误。这帮助很大,谢谢!
  • 用纯 JS 编写的好例子!谢谢
【解决方案2】:

使用HTML5 file API。它允许您在本地选择和读取文件。

【讨论】:

  • 这实际上是我之前尝试过的。它似乎无法正常工作。
  • 只有现代浏览器支持。查看 xdazz 的演示
  • 这工作,但不是在本地(至少在 chrome 上)。我忘了更新每个人。当我在虚拟主机上尝试时,它非常好。
  • @user1276567 要在 Chrome 中访问本地文件,您必须使用此开关启动 Chrome:chrome --disable-web-security
猜你喜欢
  • 1970-01-01
  • 2014-06-13
  • 1970-01-01
  • 1970-01-01
  • 2016-10-02
  • 2012-02-17
  • 1970-01-01
  • 1970-01-01
  • 2017-06-24
相关资源
最近更新 更多