[URLConnection] Bilder hochladen - aber anders!

  • Themenstarter Themenstarter anon@ara.org
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
A

anon@ara.org

Gast
Hallo,

wie der Titel schon verrät möchte ich über eine URL Connection Bilder hochladen.
Da ich nicht genau weiß, wie man soetwas sauber implementiert habe ich mir Gedanken dazu gemacht. Das Analogon mittels HTML-Formular funktioniert da ähnlich!

Doch ich habe keine Ahnung, wie ich dies nun realisieren soll ("auch mit multipart...")! Also bin ich mal auf die Suche gegangen und habe keine wesentlichen Erkenntnisse hinzugewonnen, da die meißen Tutorials da mit einem Socket vorgehen!

Irgendwo habe ich gelesen, dass man mit Java das Bild einlesen soll und dann mit base_64decode umwandeln soll, mit URLConnection via POST an das PHP-Skript übergeben soll und dann wieder rückwandeln soll und speichern soll!

Wie "sicher2(= also wie wahrscheinlich ist es, dass es von den meißten Arbeitsplätzen ohne Probleme funktioniert) ist dies??

Ich möchte nun die Datei verschlüsseln! Dies würde sich doch bei dieser Lösung anbiegen, oder?
Bsp.:
Code:
// im Pseudocode
String bildVerschluesselt = verschluessele(base64_decode( ...Datei... ),"Passwort");
out.print("file="+bildVerschluesselt);

Könnt Ihr mir vielleicht helfen, bittte :cry:
anon@ara.org[/code]
 
Hier der Code, den ich mir bisher zusammen gesucht und gebastelt habe:
Code:
public class usl {

	public static String encodeBase64String(byte abyte0[], int i, int j)
	  {
	    if(abyte0 == null)
	      return null;
	    int k = 0;
	    int l = 0;
	    StringBuffer stringbuffer = new StringBuffer(((j + 2) / 3) * 4);
	    for(int i1 = 0; i1 < j; i1++)
	    {
	      k = (k << 8) + (abyte0[i + i1] & 0xff);
	      for(l += 8; l >= 6;l--)
	      {
	        l -= 6;
	        stringbuffer.append("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(k >>> l & 0x3f));
	      }

	    }

	    if(l == 2)
	    {
	      stringbuffer.append("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((k & 3) << 4));
	      stringbuffer.append("==");
	    } else
	    if(l == 4)
	    {
	      stringbuffer.append("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((k & 0xf) << 2));
	      stringbuffer.append('=');
	    }
	    return stringbuffer.toString();
	  }

	public static void main(String[] args) {



			 byte[] dataa = FileUtil.readBinaryFile("c:/1.png");
			 String f = "";
			f = usl.encodeBase64String(dataa,0,dataa.length);
	
			 try {
			 
		        // Construct data
		        String data = URLEncoder.encode("file", "UTF-8") + "=" + URLEncoder.encode(f, "UTF-8");
		    
		        // Send data
		        URL url = new URL("http://localhost/test.php");
		        URLConnection conn = url.openConnection();
		        conn.setDoOutput(true);
		        OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
		        wr.write(data);
		        wr.flush();
		    
		        // Get the response
		        BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
		        String line;
		        while ((line = rd.readLine()) != null) {
		            // Process line...
		        	System.out.println(line);
		        }
		        wr.close();
		        rd.close();
		    } catch (Exception e) {
		    }

	}
	
}

Also das klappt irgendwie nicht mit dem einlesen der Datei (in Java) und dann als base64 versenden ...
 
Also, das Einlesen Funktioniert, das Base64 Erzeugen auch und auch PHP bekommt den String und kann ihn "Rückschlüsseln", aber hier fehlen Teile und das Bild kann nicht angezeigt werden.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben