如何使用Javascript和HTML 5按名称加载本地文本文件的内容?

时间:2016-05-24 22:34:32

标签: javascript html5 file filereader fileapi

在Chrome中工作,加载 本地 html或JS文件。

我找到了许多如何加载使用“选择文件”输入选择的文件的示例。

但是,如果不使用“选择文件”输入,没有找到如何 给定文件名

“选择文件”输入返回一个“文件”对象。

如何在没有选择文件输入的情况下创建File对象?

来自File API

new File(
  Array parts,
  String filename, 
  BlobPropertyBag properties
);

但是没有弄清楚部件和属性是什么。

编辑:使用案例:

我将代码覆盖率结果作为测试套件的一部分生成。它存储为JSON(易于阅读),但我需要用源代码显示它。

因此,该功能是加载源代码和JSON数据,并使用HTML和Javascript在网页上一起渲染它们。

该文件将从浏览器打开并存在于本地计算机上。没有服务器。

3 个答案:

答案 0 :(得分:6)

浏览器无法通过名称从文件系统加载任意文件而无需特殊扩展或其他恶作剧。这是一项安全策略,可防止随机网站在您浏览互联网时从您的硬盘读取文件。

如果你想做一些特别的事情,比如想要编写一个chrome应用程序,你可以访问一些很好的API来访问文件系统: https://developer.chrome.com/apps/fileSystem

答案 1 :(得分:2)

File构造函数不会从硬盘驱动器读取文件,但是rater会创建一个虚拟文件,请考虑以下事项:

var file = new File(["some", "content"], "/tmp/my-name.txt");
var reader = new FileReader();
reader.onload = function() {
  console.log(reader.result); // somecontent
};

客户端计算机上不会读取或存储任何文件。

如果您正在讨论在中创建文件,那么您应该看看fs

答案 2 :(得分:0)

出于安全考虑,所有浏览器都不支持文件字段上的预定义值,因此答案是您不能。