使用现有的本地文件而无需选择

时间:2014-09-24 15:47:10

标签: javascript text-files filereader

我为自己开发了一个脚本,可以使用带有filereader api的最新Chrome或Firefox浏览器在我的计算机上阅读和处理本地文本和csv文件。该脚本将在计算机上运行,​​即使它未连接到Internet或本地Web服务器。

这背后的原因是有一个独立的文本文件询问器,几乎可以在任何计算机上工作,只需要一个浏览器来执行和显示合理格式的输出。类似于awk类型的应用程序。

我使用filereader api,效果很好。

我没有正确理解浏览器的工作原理,所以我的问题可能非常愚蠢。

我的脚本是否有可能以某种方式将文件名传递给脚本filereader api,而无需从input type=file字段中选择文件。

例如,我有一个名为addresses.csv的文件,它与我的带有filereader api代码的html / js文件位于同一目录中。

我想模拟文件的选择,无需访问我的本地目录,也不使用网络服务器,但预定义文件名的下拉框会更好。

2 个答案:

答案 0 :(得分:3)

不,出于安全原因,这是不可能的,因为否则人们可以在他们的访问者的计算机上打开任意文件,这绝对不是意图。

  

此规范还假定主要用户交互是使用HTML表单[HTML]的元素,并且FileReader对象正在读取的所有文件都是由用户首先选择的。

请参阅http://www.w3.org/TR/FileAPI/#security-discussion

答案 1 :(得分:1)

不,你不能。如果没有使用文件输入或拖放文件(html5),Javascript无法读取您的本地文件系统,因为它很容易被恶意使用。

Chrome已包含filesystem api的开头。但是您无法读取/写入文件系统上任何您想要的位置,只能对文件系统上的沙盒区域执行此操作。他们会在未来版本的Chrome中继续使用它,虽然我不知道。

W3C本身也有discontinued the file system api