使用javascript从硬盘读取文件

时间:2013-11-22 05:58:01

标签: javascript file-io

我的应用程序创建.xml个文件并将其存储在用户的硬盘上;我在web.xml设置了一个默认文件夹来存储文件,比方说D:/temp。现在我写完文件之后我需要用javascript读取它们,我使用的是一个具有此函数的{javascript库mxUtils.load('URL of the file')(此函数返回文件的内容),问题是它给了我一个错误Cross origin requests are only supported for HTTP,(我现在它与函数或库没有任何关系)我认为问题是由于某些安全问题,您无法读取本地文件。有人可以给我一些解决方案吗?感谢

3 个答案:

答案 0 :(得分:2)

您无法使用javascript访问本地文件系统。 要使用javascript访问文件,您必须将其上传到服务器并使用文件URL访问它。

答案 1 :(得分:1)

最好通过HTTP公开您的文件并使用mxUtils.load("http://yoursite/static/yourfile.xml")

Apache HTTP Server HowTo上搜索static files。设置Apache以提供xml文件,确保您可以在浏览器中查看xml文件,然后在mxUtils.load调用中使用相同的URL。

答案 2 :(得分:1)

如上所述,您无法严格通过Javascript访问文件系统上的文件。但是,您可以使用input文件类型将文件上传到您的服务器,然后阅读它:

<input type="file" name="myfileinput">

然后,您可以通过$_FILES中的PHP全局访问它 - 其他语言也可以通过其他方式提供此功能。请再次注意,在未经他们同意的情况下(即使用文件输入类型),绝对无法使用Javascript访问某人文件系统上的文件。这将是一个巨大的安全风险 - 想象一下去一个页面并让它擦除整个D:/驱动器。