0

您好我有一个小程序,它根据 CSV 文件中的一些调查数据创建图表。我希望 Applet 还生成图形的 png 文件。这在我的计算机上进行测试时有效,但是当在线托管时,我收到以下安全错误

java.security.AccessControlException: access denied 
    ("java.io.FilePermission" "detail.png" "delete")

detail.png 是我要创建的 png 文件的名称。

这是在我的小程序中创建文件的代码。

public void imgPaint(){
    done=1;
    setSize(800,500);
    BufferedImage bi = new BufferedImage(this.getSize().width, this.getSize().height, BufferedImage.TYPE_INT_ARGB);
    g2 = bi.createGraphics();
    paint(g2);
    try{ImageIO.write(bi,"png",new File("detail.png"));}catch (Exception e) {e.printStackTrace();}
}

因此,当小程序调用 JPanel 时,它会转到绘制方法,绘制到屏幕,然后调用此方法再次绘制到 png 文件。无论如何,问题似乎不是代码,而是 Java 不允许我创建 png 文件。它应该转到我在托管程序的服务器上的文件。

我真的对 Java 安全一无所知,所以你们可以提供的任何帮助都会很棒。

4

1 回答 1

0

它应该转到我在托管程序的服务器上的文件。

为了服务器的安全,客户端(applet 或其他)不能File在服务器上创建。您可能会提供一个特定的上传工具(例如基于 FTP),然后小程序可能会使用该工具。

该代码实际上会尝试File在用户的本地文件系统上创建一个。

于 2013-08-13T17:06:21.087 回答