Bildupload (BufferedImage) mit Java und PHP

mal2000b

Grünschnabel
Hallo,
ich programmiere seit längerem einem sehr einfachen Java-Applet um Daten (Bilder) aus der Zwischenablage auf dem Server hochzuladen. Das Problem mit der Zwischenablage habe ich schon gelöst und die Bilder liegen als BufferedImage vor. Nun will ich die Daten auch per Java und PHP auf dem Server hochladen. Da Weiß ich leider nicht genau wie ich vorgehen soll. Ich habe folgende Methode programmiert.
Ich weiß nicht wie ich BufferedImage an PHP weitergeben soll. Soll ich BufferedImage erst in File umwandeln?
Und da ich keine Ahnung von PHP habe weiß ich leider auch nicht wie ich dann die Bilder per php auf dem Sever speichern kann.
Kann jemand bitte mir weietrhelfen?
Vielen Dank.

HTML:
            HttpURLConnection conn = null;
            conn = (HttpURLConnection) new URL(getParameter("http://localhost/test/upload.php") ).openConnection();
            conn.setRequestMethod("POST");
            conn.setFollowRedirects(false);
            conn.setRequestProperty("content-type", "application/zip");
            conn.setDoOutput(true);
            OutputStream out = conn.getOutputStream();
            int read;
            byte[] buf = new byte[1024];
            File file = new File(filename);
            InputStream in = new FileInputStream(file);
            int readBytes = 0;
            Upload.progress.setProgress(0); 
            while ((read = in.read(buf)) > 0) {
            readBytes += read;
           System.out.println(readBytes);
          out.write(buf, 0, read);
            conn.connect(); 
            System.out.println("Result:");
            BufferedReader bis = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            String line;
            while((line = bis.readLine()) !=null)
               System.out.println(line);
 
Hallo. Ich habe zwar nicht wirklich Ahung von PHP aber ich bin mir ziemlich sicher, dass der Webserver mit den Daten in einem BufferedImage nichts anfangen kann.
Meine Vorgehensweise in diesem Fall wäre in etwa so:
1. Verbindung mit Server herstellen
2. Upload initialisieren (Dateinamen angeben bsp. "Bild.bmp")
3. Und wenn der Server nun den Inhalt also die Daten des Bildes haben will den OutputStream und das BufferedImage an die Klasse ImageIO übergeben

Beispiel:

Der OutputType legt den Dateityp fest, in den das BufferedImage gewandelt wird. (bmp, jpg, png ect.)
In diesem Beispiel mit "Bild.bmp" als Datei würden wir "bmp" übergeben.

Java:
public static void uploadPicture(OutputStream out, String outputType, BufferedImage img) throws IOException {
	javax.imageio.ImageIO.write(img, outputType, out);
}


Ist es in deinem Fall überhaupt notwendig die Datei über einen Webserver hochzuladen?
Ansonsten schreib dir doch einfach einen eigenen kleinen "Upload Server", welcher parallel zu deinem Webserver läuft und die Daten dann in deinem Webordner speichert.
Um auf die Daten, die auf den Server hochgeladen worden sind, von überall zuzugreifen kannst du ja dann immernoch deine Website benutzen.
 
Zuletzt bearbeitet:
Zurück