2013-11-28 27 views
1

我使用JavaMail來保存附件的Temp文件夾,代碼如下: -JavaMail的附件中的數據丟失

for (int i = 0; i < multipartmsg.getCount(); ++i) { 

    BodyPart bodypart = multipartmsg.getBodyPart(i); 
       if (Part.ATTACHMENT.equalsIgnoreCase(bodypart.getDisposition()) 
       && null != bodypart.getFileName() 
        && !bodypart.getFileName().isEmpty()) { 

      InputStream is = bodypart.getInputStream(); 
      MimeBodyPart mbp = new MimeBodyPart(is); 
      File f = new File("/temp/"+abcd); 

      mbp.saveFile(f); 
    } 

但一個250KB的文件被保存爲220KB。數據丟失,因此我無法打開文件。任何想法爲什麼這可能會發生?

我還設置了我的properties.setProperty(「mail.imaps.partialfetch」,「false」);因爲我使用imaps連接。

回答

0

爲什麼要用原始零件的內容創建一個新的MimeBodyPart?這沒有任何意義,並且很可能是問題的根源。只需在原始零件上使用saveFile方法即可。

+0

我意識到,首先創建一個bodypart,然後是一個mimebodypart,使用saveFile()方法,當一個簡單的轉換可以完成工作時,我很愚蠢。是的,這是我的問題的原因。謝謝 :) – Aaditya