是否可以使用FileReader读取已存在的文件?

时间:2018-05-15 03:11:56

标签: javascript

我试图读取存储在我(主机)计算机上的文本文件的内容。当我遇到Javascript' FileReader时,我认为这是完成工作的完美工具。 Howeverevery example or question I see online展示如何使用它来读取文件正在从用户的计算机上传(因此他们可以使用事件目标指向他们想要阅读的文件)or they use AJAX (well, at least the XMLHttpRequest object)阅读自己的文件。

那么可以使用FileReader从本地(到主机)文件读取吗?当我正在研究这个问题时,它让我想知道我是否认为这一切都错了,但是通过AJAX从网页上的文本文件中使用信息的唯一方法是什么?这似乎是错误的,似乎必须有一个更简单的方法。

1 个答案:

答案 0 :(得分:1)

FileReader需要Blob。哪个是表示内存中二进制文件的对象。

Blob 来自哪里并不重要,但您需要拥有浏览器分配的内存,以便 FileReader 可以访问它。 FileReader 不会自行下载任何内容。

因此,如果您正在讨论存储在服务器上的文件,那么浏览器必须将其从那里下载到计算机的内存中。至于如何实现这一点,有很多方法最常见的是 AJAX ,只要数据从服务器下载并可访问,至少从它构建一个Blob,然后 FileReader 会很高兴。

如果您正在谈论存储在用户磁盘上的文件,那么浏览器需要被授予访问权限并将其加载到其内存中的权限,这通常使用<input type="file">元素来完成,因为出于安全原因,浏览器不会访问用户磁盘。