【问题标题】:Javamail attachments data lostJavamail 附件数据丢失
【发布时间】:2013-11-29 15:50:19
【问题描述】:

我使用 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");,因为我使用 imap 进行连接。

【问题讨论】:

    标签: java jakarta-mail


    【解决方案1】:

    为什么要使用原始部件的内容创建新的 MimeBodyPart?这没有任何意义,并且很可能是您的问题的根源。只需在原始部分使用 saveFile 方法即可。

    【讨论】:

    • 我意识到,当一个简单的演员可以完成工作时,使用 saveFile() 方法首先创建一个 bodypart 然后再创建一个 mimebodypart 是愚蠢的。是的,这就是我的问题的原因。谢谢:)
    猜你喜欢
    • 1970-01-01
    • 2019-07-20
    • 1970-01-01
    • 1970-01-01
    • 2016-06-08
    • 1970-01-01
    • 1970-01-01
    • 2015-01-05
    • 1970-01-01
    相关资源
    最近更新 更多