Java applet可以打开“选择目录”并通过JavaScript交互写入文件系统吗?

我正在寻找一种方法来保存客户端计算机上使用JavaScript创建的几个文件。 我希望他能够选择一个文件夹(类似于打开/保存文件夹对话框),然后在那里写入文件。 这显然需要三件事:

  • 能够弹出这样的对话框。
  • 能否在客户端的计算机上编写(签名小程序?)
  • 与JavaScript交互的一些方法,因为它知道要写入的文件名和内容。

这可能还是我应该停止做梦?

肯定是可能的。

一种方法是使用签名的applet,但如果您的用户愿意升级到Java 1.6.0_10 +,则不需要签名的applet。 自1.6.0_10(下一代Java插件)以来,JNLP API服务可用于嵌入式applet。 这是一个演示。 JNLP文件服务 。

我看到其他回复已经涵盖了applet / JS的互动。

可以使用签名的applet。

我可能会反过来做,让javascript代码将所有数据传递给applet,applet应该打开FileDialog并写入文件。

从java调用javascript可以通过`JSObject实现, 在这里解释从Javascript调用Java

如果您的applet已签名,您可以执行常规应用程序中可以执行的所有操作。 您可以打开“文件对话框”,但它将是Java的对话框,与用户按下标签 “浏览”按钮时打开的对话框不同。 显然,签名的applet可以对用户的磁盘执行读写操作。

所有applet(有符号或无符号)都可以使用JSObject调用javascript。 你只需要在applet标签中说MAYSCRIPT =“true”。

我认为你无法打开浏览器的“文件打开”对话框小程序。 实际上你甚至无法使用普通的javascript打开它。 (我很高兴知道我现在错了,但我花了一些时间尝试这样做并失败了)。