2

我一直在 Codecademy 做代码年,我想开始为自己练习 Javascript,但我一直很难弄清楚一些基本问题。

对于我的第一个项目,我想从电子表格中读取。我不知道如何从其原始来源在线访问数据,所以我想我会将其保存为文本文件。那么,我的问题是如何从中阅读。

所以看起来你无法用 Javascript 读取本地文件。(虽然显然 HTML5 正在改变?我对此并不熟悉。)所以我必须将文本文件上传到某个地方吗?我可以将文件上传到 JS Bin 吗?如果没有,是否有人对我可以在哪里上传文本文件有任何建议?无论哪种方式,一旦我这样做,从中读取的代码是什么?

提前致谢。我确信这个问题充满了错误陈述和不当行为,但我在这方面花费了大量时间,但我找不到任何似乎可以回答我的问题的东西。老实说,我认为这会很简单,例如“var inputfile = c:\file.txt”,但似乎并非如此。我完全迷路了。谢谢!

4

2 回答 2

1

你不能。Javascript(或者更确切地说是客户端)中的文件系统和存储是沙盒化的。

这意味着您只能首先阅读那里写的内容。这与安全有关。

您需要将本地文件拖放(或选择)到浏览器中,并在那里有一些机制来接收拖放/选择并将文件存储到本地存储机制之一,例如indexedDBor file API(后者目前仅在 Chrome 中支持)。对于文本文件localStorage也可以正常工作。

资源:
http ://updates.html5rocks.com/2011/08/Saving-generated-files-on-the-client-side
http://www.w3schools.com/html/html5_webstorage.asp

http://www.w3.org/TR/webstorage/
http://www.w3.org/TR/FileAPI/
http://www.w3.org/TR/IndexedDB/

另一种选择是将其上传到服务器并在需要时从那里下载。

于 2013-05-22T02:25:31.187 回答
0

当您在开发中达到这一点时,是时候运行您自己的网络服务器进行测试了,因为它使事情变得更加容易。如果您必须坚持按照自己的方式进行操作,将文件上传到文件托管站点并读取它仍然是可能的。Codecademy 非常适合入门,但是当您开始处理持久性数据源(文件或数据库)时,是时候进行网络托管或设置自己的测试服务器了。

即使这样,您也不需要自己的测试服务器,只需要计算机上的一个文件夹。您可以使用 File:// 访问文件,并将要读取的文件链接为相对路径。如果 .txt 文件位于同一目录中,则只需在打开该目录中的 html 文件时将其链接为“Example.txt”。

于 2013-05-22T02:23:30.160 回答