Jo, det är just det jag vill göra (om jag förstår dig rätt).
Mitt första problem var att få till javakoden för requesten så att jag överhuvudtaget kom åt filen i .net-applikationen. Det lyckades till slut.
Mitt problem nu är hur jag ska omvandla mitt java.awt.Image-objekt till någon form av strängrepresentation som kan överföras i requesten och som jag kan lyckas omvandla tillbaka till ett System.Drawing.Image-objekt i .net.
Kod:
// Java
private void postImage(Image image)
{
BufferedImage buffImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
ImageIcon imageIcon = new ImageIcon(image);
ImageObserver observer = imageIcon.getImageObserver();
buffImage.getGraphics().setColor(new Color(255, 255, 255));
buffImage.getGraphics().fillRect(0, 0, width, height);
buffImage.getGraphics().drawImage(imageIcon.getImage(), 0, 0, observer);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
JPEGImageEncoder jpeg = JPEGCodec.createJPEGEncoder(stream);
jpeg.encode(buffImage);
URL url = new URL(m_postUrl);
URLConnection connection = url.openConnection();
String boundary = "--------" + Long.toHexString(System.currentTimeMillis()) + "--------" + Long.toOctalString(System.currentTimeMillis());
connection.setRequestProperty("method", "POST");
connection.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);
String output =
"--" + boundary + "\r\n"
+ "Content-Disposition: form-data; name=\"theFirst\"\r\n"
+ "Content-Type: text/plain\r\n"
+ "Content-Transfer-Encoding: quoted-printable\r\n\r\n"
+ "Testar ett litet meddelande.\r\n"
+ "--" + boundary + "\r\n"
+ "Content-Disposition: form-data; name=\"pastedImage\"; filename=\"theFilename.jpg\"\r\n"
+ "Content-Type: image/jpeg\r\n"
+ "Content-Transfer-Encoding: base64\r\n\r\n"
+ Base64.encode(stream.toByteArray())
//+ new String(stream.toByteArray())
+ "\r\n"
+ "--" + boundary + "--\r\n";
connection.setDoOutput(true);
connection.getOutputStream().write(output.getBytes());
connection.connect();
}
Jag har provat både med och utan base64-kodning (rad 7 från slutet), men vad jag väljer för argument i första raden (BufferedImage.TYPE_INT_RGB) påverkar resultatet i filen jag till slut får ut i .net. Tips, någon?