Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [java]mail - immagini

  1. #1
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491

    [java]mail - immagini

    Ricevo il messagio e-mail Multipart e lo suddivido in MimeBodyPart, poi leggo le Part una per volta e decido cosa farne a seconda del tipo (text,html,image). Fino qui tutto discretamente, ho un problema ad "estrapolare" l'immagine dalla BodyPart. Io ho scritto questo:

    codice:
    MimeBodyPart mbp;
    //...
    //...
    else if(mbp.isMimeType("image/gif")){ 
      ImageIcon imm = new ImageIcon((byte[])mbp.getContent());  
      pannello.add(new JLabel(imm));  
    }  
    //....
    Devo dire che ho un pò inventato ma veramente non mi raccapezzo... sul tutorial spiega come inserire un'immagine in una mail, ma non come leggerla!
    Ogni aiuto è benvenuto.
    Grazie
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    io farei così
    prenderei la BodyPart col file

    MimeBodyPart bodyPart = ...;
    String file = bodyPart.getFileName();

    poi leggerei il contenuto della BodyPart

    InputStream IS = bodyPart.getInputStream();
    int a = IS.available();
    byte[] b = new byte[a];
    while (a > 0) {
    IS.read(b);
    a = IS.available();
    }

    poi scriverei un file

    FileOutputStream FOS = new FileOutputStream(file);
    FOS.write(b);

  3. #3
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491

    GRAZIE!!

    Grazie mille ho risolto adottando il tuo modo a ciò che mi serviva..:quote:
    Posto il codice se qualcuno cercasse...
    codice:
    MimeBodyPart mbp;
    JPanel pannello;
    //.....
    //.....
    if(mbp.isMimeType("image/gif")||mbp.isMimeType("image/jpeg")){
      String file = mbp.getFileName();
      InputStream is = mbp.getInputStream();
      int a = is.available();
      byte[] b = new byte[a];
      while(a > 0){
             is.read(b);
             a = is.available();
            }
      ImageIcon imm = new ImageIcon(b);
      pannello.add(new JLabel(imm));
     } 
    //.....
    //.....
    Ti ringrazio ancora tantissimo mi stai aiutando molto:bubu:
    Lo sai, come si sente uno quando riesce a far fare al programma ciò che voleva dopo averci tante volte sbattuto la testa...
    Grazie, credo ti scoccierò ancora più in là!!:gren:
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.