Applet Security阻止创建png文件

时间:2013-08-13 15:56:38

标签: java file security applet

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

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

with detail.png是我正在尝试创建的png文件的名称。

这是在我的applet中创建文件的代码。

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();}
}

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

我对Java安全性一无所知,所以你们给予的任何帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

  

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

为了服务器的安全性,客户端(applet或其他)无法在服务器上创建File。您可以提供applet随后可以使用的特定上载工具(例如基于FTP)。

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