我一直在Codecademy做代码年,我想开始为自己练习Javascript,但是我一直很难找出一些基本问题。
对于我的第一个项目,我想从电子表格中读取。我无法弄清楚如何从其原始源在线访问数据,所以我想我只是将其保存为文本文件。那么,我的问题是如何阅读。
所以看起来你无法在Javascript中读取本地文件。 (虽然显然HTML5正在改变?我对此并不熟悉。)所以我必须在某个地方上传文本文件吗?我可以将文件上传到JS Bin吗?如果没有,是否有人建议我可以上传文本文件?无论哪种方式,一旦我做了,从中读取的代码是什么?
提前致谢。我确信这个问题充满了错误陈述和不正当行为,但我花了很多时间在这上面,我找不到任何似乎可以回答我的问题。老实说,我认为它会很简单,比如“var inputfile = c:\ file.txt”,但似乎并非如此。我完全迷失了。谢谢!
答案 0 :(得分:1)
你做不到。 Javascript(或更确切地说是客户端)中的文件系统和存储是沙箱化的。
这意味着您只能首先阅读那里写的内容。这与安全性有关。
您需要将本地文件放入(或选择)到浏览器中,并在那里有一些机制来接收放置/选择并将文件存储到本地存储机制之一,例如indexedDB
或{{ 1}}(后者目前仅在Chrome中支持)。对于文本文件file API
也可以正常工作。
资源:
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/
另一种选择是将其上传到服务器并在需要时从那里下载。
答案 1 :(得分:0)
当你在开发中达到这一点时,是时候运行自己的web服务器进行测试了,因为它使事情变得更容易。如果您必须坚持按照自己的方式进行操作,则仍然可以将文件上载到文件托管站点并将其读入。 Codecademy非常适合入门,但是当你开始处理持久性数据源(文件或数据库)时,可以花时间进行Web托管或设置自己的测试服务器。
即使这样,您也不需要自己的测试服务器,只需要计算机上的文件夹。您可以使用File://访问文件,并将要读取的文件中的链接作为相对路径链接。如果.txt文件位于同一目录中,则只需在该目录中打开html文件时将其作为“Example.txt”链接。