0

我正在为客户创建一个 Java Applet,我遇到了一个问题,我需要读取/写入他们 Web 服务器上的文件,但在任何情况下,该文件都不能公开访问。

Java Applet 和文件都在同一台服务器上,如果需要,我可以将文件和 .jar 文件放在同一个文件夹中,但我尝试了几种不同的配置,包括将它们放在同一个文件夹中并访问文件与

test = WorkbookFactory.create(new File("test.xlsx"))

我试过写出文件的完整路径,但似乎没有任何效果。

我得到的错误是:

Caused by: java.security.AccessControlException: access denied ("java.io.FilePermission" "test.xlsx" "read")

在同一台服务器上读取/写入文件的最佳方式是什么,不能公开看到?

4

2 回答 2

1

您似乎对 Java 小程序的工作方式存在根本性的误解。它们不在服务器上运行,而是在客户端、Web 浏览器中运行。如果客户端的 Web 浏览器无权访问该文件,则小程序也无权访问。

于 2012-07-12T01:41:57.970 回答
0

Applet 不能在服务器上读取或写入文件,因为 Java 代码在客户端上运行——即,在 Web 浏览器本身中。实现您正在寻找的最佳方法是创建一个写入文件的servlet(或其他服务器端代码模块),并强制执行某种安全性。然后,applet 可以与该 servlet 对话,并以您喜欢的任何方式保护对文件的访问。例如,嵌入小程序的页面可能包含生成的唯一密钥,小程序将使用该密钥访问 servlet。

于 2012-07-12T01:46:49.380 回答