# Grafiken speichern von unsigniertem Applet



## guiltyguy (11. Mrz 2007)

Hy Leute,

ich möchte eine Grafik, die ich vorher in einem Java Applet gemalt habe auf meinem Server speichern, aber mein Applet ist nicht signiert und ich möchte es auch nicht signieren.

Zur Lösung des Problems möchte ich also ein PHP Script benutzen, das die Bilddaten geliefert bekommt und dann das Bild speichert. Hat sowas hier schonmal jemand gemacht und hat Lösungsansätze für mich, wie ich am einfachsten eine Codierung des Bildes von Java nach PHP hinbekomme?

Vielen Dank für alle Tipps, aber bitte nicht signieren!

Schöne Grüße, Marc


----------



## guiltyguy (11. Mrz 2007)

Noch eine Anmerkung: Wie ich die Verbindung mit PHP bewerkstellige usw. weiß ich alles.
Es geht mir darum, in welcher Form ich am besten Bilddaten von Java aus an PHP übertragen kann und wie ich das in PHP dann am besten als Bild speichere, denn ich kenne mich nicht so gut mit PHP aus.


----------



## Wildcard (12. Mrz 2007)

Warum öffnest du nicht einfach eine Connection zum Server? Dazu muss das Applet nicht signiert sein.


----------



## guiltyguy (12. Mrz 2007)

Hy,

wie meinst Du eine Connection zum Server?

Ich habe keine Servlets oder jsps oder ähnliches zur Verfügung, ich kann auf dem Server nur PHP Scripte verwenden.

Gibt es eine Möglichkeit eine Datei auf dem Server aus dem Applet zu erstellen, ohne es zu signieren?

Falls ja, wäre es sehr hilfreich, ein kleines Codebeispiel oder zumindest die relevanten Klassennamen beizufügen!

Vielen Dank.


----------



## Wildcard (12. Mrz 2007)

Mit Connection meine ich das du auf dem Server eine Java Applikation laufen lässt die auf einen bestimmten port hört.
Damit kannst du dich dann vom Applet aus verbinden.


----------



## guiltyguy (12. Mrz 2007)

Achso, ok.
Ja, das würde ich natürlich machen, aber die Rechte habe ich auf dem Server nicht.
Serverseitig bin ich auf ein PHP Script gebunden...

Ich werde also eine HttpURLConnection Verbindung zu PHP aufbauen und schicke Daten an PHP.
In PHP erstelle ich dann eine neue Datei in die einfach die empfangenen Daten gespeichert werden.

Bisher sieht es ungefähr so aus:

```
try {
         //Erstmal schreibe ich die Daten in ein ByteArray

         ByteArrayOutputStream boas = new ByteArrayOutputStream();

         JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(boas);
         JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(image);
         param.setQuality(1, false);
         encoder.encode(image, param);

         boas.close();        
         
         //Verbindung ist eine selbstgeschriebene Klasse, die eine
         //Verbindung zu einem PHP Script aufbaut
         Verbindung senden = new Verbindung(new URL(
               Konstanten.PHP_BILD_SCRIPT));

         //Hier werden POST Daten an das Script der Verbindung senden geschickt
         senden.senden(Konstanten.PHP_BILD_DATEN +boas.toString());
      } catch (Exception e) {
         System.out.println("Speicherfehler");
      }
```

Ich schreibe also erstmal alles in ein ByteArray und schicke dann das in einen String gewandelte Array als POST Parameter an PHP.

Dort kommt aber irgendwie nicht alles an und ich kriege kein Bild daraus zusammengesetzt?

Jemand eine Idee woran das liegen könnte oder wie ich es anders machen kann?

P.S.: & usw. filtern habe ich schon versucht, daran scheint es nicht zu liegen


----------



## Wildcard (12. Mrz 2007)

Du kannst binärdaten nicht einfach als String und schon gar nicht als String über http versenden.
So trivial geht das leider nicht  :wink:


----------



## guiltyguy (12. Mrz 2007)

Ja, das ist mir an sich schon klar, das war nur ein verzweifelter Versuch... 
Ich dachte mir, dass vielleicht jemand einen Löstungsansatz hat, wenn er meine bisherigen Versuche sieht.
Irgendwie muss man es doch an ein PHP Script ordentlich kodiert schicken können, oder nicht?

Bin für jeden Ansatz dankbar (vor allem für Codeschnipsel )


----------



## Wildcard (13. Mrz 2007)

Möglicherweise ist was für dich dabei (mit einer der Klassen kann man zum Beispiel serialisierte Objekte verschicken):
http://www.servlets.com/cos/index.html
Ich weiß allerdings nicht unter welcher Lizenz das ganze steht, daher musst du erst mal schauen ob du das so einfach umschreiben darfst.


----------



## guiltyguy (15. Mrz 2007)

Für alle, die eventuell mal ähnliche Probleme haben:

Man sollte sich mit den Request for comments des HTTP Protokolls auseinandersetzen.
Man benötigt hier MultiplePart Requests, die sowohl Binärdaten als auch Texte gleichzeitig übertragen können.

Mit diesen Stichworten und vielleicht noch der Sache nach PHP Upload Script kommt man ganz gut weiter.


----------

