4

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

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

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

4

3 回答 3

8

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

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

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

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

至于服务器,如果您的意思是使用 server-JS(NodeJSRhino)访问服务器,是的,您可以(否则它将如何为网页提供服务?)。

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

如果您有一个 API 可以从中读取文件,那么使用 JS从浏览器访问服务器是可行的。

浏览器 JS 读取其他服务器的文件:是的,有一个问题

要在没有某些 API 的情况下访问其他服务器的文件,您可以求助于创建运行服务器端的网络爬虫或网络蜘蛛(因为浏览器由于相同的源策略而无法跨域)并将 API 暴露给您的浏览器.

然而:

  • 您无法抓取所有文件,因为某些文件可能会受到外部访问的限制。
  • 结构的公开外观可能与内部结构不同,特别是如果网站使用分段 url 方案
  • 使用查询字符串生成页面的站点由于可能进行的排列数量而无法轻松抓取,因此某些页面可能无法访问。
于 2012-05-27T13:55:47.603 回答
2

CGI 也不是一个解决方案,因为它只能访问您服务器的文件系统,而不是访问您站点的客户端的文件系统。从 javascript 访问客户端文件系统的唯一方法似乎是File API,这显然没有被许多浏览器实现

于 2012-05-27T13:42:14.630 回答
0

这是一个杂物,但您可以求助于 java 小程序或可怕的 active-x 控件。

于 2012-05-27T14:34:00.893 回答