【问题标题】:Applet Security blocking creation of png fileApplet Security 阻止创建 png 文件
【发布时间】:2013-08-13 15:56:38
【问题描述】:

您好,我有一个小程序,可以根据 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 安全一无所知,所以你们能提供的任何帮助都会很棒。

【问题讨论】:

    标签: java file security applet


    【解决方案1】:

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

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

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

    【讨论】:

    • 这是有道理的。应该想到的。谢谢
    • 您知道我可以将现有文件编辑成 png 的方法吗?
    • “已经存在的文件” 不要绕过服务器端或客户端的安全性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-20
    • 2018-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-17
    • 2020-02-12
    相关资源
    最近更新 更多