Ich versuche, ein Base64-kodiertes Bild aus meinem Java-Code auf einer Website zu POSTen. Ich habe die Kodierung und Dekodierung der Datei lokal getestet und es funktioniert wunderbar! Wenn es jedoch auf der Website ankommt, wird mir gesagt, dass das Bild leer ist.
Hier ist, wie ich POST'ing. Wenn ich eine andere Aktion anstelle von Upload verwende, erhalte ich die richtige Antwort!
ready = new java.net.URL(url);
WebRequest request = new WebRequest(ready, HttpMethod.POST);
request.setAdditionalHeader("Content-Type", "application/x-www-form-urlencoded");
String requestBody = "action=upload"
+"&key=ABCDEFG123456"
+ "&file=" + encodedFile
+ "&gen_task_id=" + SQL.getNextID();
encodedFile stammt aus dem folgenden Code:
File file = new File("temp.jpg");
FileInputStream fin = new FileInputStream(file);
byte fileContent[] = new byte[(int)file.length()];
fin.read(fileContent);
//all chars in encoded are guaranteed to be 7-bit ASCII
byte[] encoded = Base64.encodeBase64(fileContent);
String encodedFile = new String(encoded);
Ernsthaft, was mache ich falsch? Ich schlage jetzt schon seit Stunden meinen Kopf gegen die Wand!