Visa ett inlägg
Oläst 2008-06-23, 11:37 #20
etanders etanders är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 160
etanders etanders är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 160
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?
etanders är inte uppkopplad   Svara med citatSvara med citat