Javascript:列出文件和文件夹结构

时间:2012-05-27 13:37:02

标签: javascript html5 web-applications

正如我所读到的,JavaScript修改客户端PC上的文件并不容易。我正在开发基于Web的文件管理器,需要知道以下内容:

  • 可以在客户端PC上列出JavaScript文件和文件夹结构吗?
  • 可以在服务器上列出JavaScript文件和文件夹结构吗?

如果您的答案是否定的,那么Java Scipt无法列出客户端或服务器的C:\驱动器上的文件和文件夹,而CGI脚本是唯一的解决方案吗?

3 个答案:

答案 0 :(得分:7)

浏览器JS读取客户端PC的文件:取决于

出于安全原因,未经用户同意,您无法访问用户PC上的文件。

这就是围绕文件输入框<input type="file">和拖放区域创建FileReader API的原因,因为整个想法是“在用户同意的情况下访问文件”。如果用户没有故意将文件放入访问权限,则根本无法访问它。

服务器端JS读取自己服务器的文件:是

至于服务器,如果你的意思是使用server-JS(NodeJSRhino)访问服务器,是的,你可以(无论如何它还能为网页提供服务吗?)。

浏览器JS读取自己服务器的文件:取决于

使用JS从浏览器访问服务器,如果你有一个API可以从中读取文件。

浏览器JS读取其他服务器的文件:是的,带有catch

要在没有某些API的情况下访问其他服务器的文件,您可以使用创建网络刮刀或运行服务器端的网络蜘蛛(因为浏览器无法跨越域{{{ 3}})并向您的浏览器公开API。

然而:

  • 您无法抓取所有文件,因为某些文件可能会受到外部访问的限制。
  • 结构的公开外观可能与内部结构不同,特别是如果网站使用分段网址方案
  • 使用查询字符串生成页面的网站由于可能产生的排列数量而无法轻易抓取,因此某些网页可能无法访问。

答案 1 :(得分:2)

CGI也不是解决方案,因为它只能访问服务器的文件系统,而不能访问访问您站点的客户端。从javascript访问客户端文件系统的唯一方法似乎是File API,显然是not implemented by many browsers

答案 2 :(得分:0)

它是一个混合物,但你可以使用java applet或可怕的active-x控件。