applet - imageio.write > access denied

vakem

Grünschnabel
hallo zusammen,

ich will ein im applet erzeugtes Bild auf dem Server abspeichern, auf dem auch das Applet und die html datei liegen. Allerdings bekomme ich folgenden Fehler:
"java.lang.Exception: java.security.AccessContrilException: access denied (java.io.FilePermission file:\G:\...\xyz.jpg read)"

Beim Auslesen von Grafiken konnte ich den Fehler schon durch einen InputStream beheben. Dort verwende ich URL.openStream(), was leider nicht kompatibel mit einem OutputStream ist. Bisher konnte ich nichts vergleichbares für einen OutputStream finden.
Mit FileImageOutputStream und beim schreiben ohne Stream bringt es mir den genannten Fehler.

Kann mir jemand weiterhelfen :(

code zur ausgabe bisher:
Code:
        File fileoutpic01 = new File(getCodeBase().toString(), codeid+".jpg");
          FileImageOutputStream outpic01 = new FileImageOutputStream(fileoutpic01);
            ImageIO.write(img, "jpg", outpic01);

funktionierender code zum auslesen:
Code:
      URL urlpic01 = new URL(getCodeBase(), "img/applet/ewb1.jpg");
        InputStream inpic01 = urlpic01.openStream();
          pic01 = ImageIO.read(inpic01);

vielen dank im voraus für jegliche hilfe
mFg
roland
 
Hallo Roland,

dein Applet liegt wenn es geladen wird auf dem Clientrechner und wird dort im Browser ausgeführt und nicht auf dem Server. Das schreiben wird also wegen den Sicherheitseinschränkungen nicht funktionieren.

Lösung 1: Du signierst das Applet, dann sind die Sicherheitseinschränkungen aufgehoben.

Lösung 2: Du schickst die Daten aus dem Applet an den Server. Ein PHP Script beispielsweise nimmt diese entgegen und speichert sie auf dem Server.

Lösung 3: Java Server Pages, Servlet,... also serverseitige Javatechniken benutzen.


Vg Erdal
 
hi,

ich dachte es wäre möglich zumindest auf server dateien zu schreiben :)
na dann werd ich das mit dem signieren mal probieren, da auf dem "server" kein apache oä. installiert ist.

danke
mFg
vakem
 
Zurück