编程语言
首页 > 编程语言> > java – 通过MIME将多个文件附加到Lotus Domino中的文档

java – 通过MIME将多个文件附加到Lotus Domino中的文档

作者:互联网

在我们的企业应用程序中,我们需要将文件附加到文档中.我们在字节数组中有文件名和文件内容.我找到了一个使用MIME将文件附加到文档的解决方案:

    final MIMEEntity body = document.createMIMEEntity(fileName);
    final MIMEHeader bodyHeader = body.createHeader("Content-Disposition");

    final boolean isHeaderValSet = bodyHeader.setHeaderVal("attachment; filename=\"" + fileName + "\"");
    if (!isHeaderValSet) {
        throw new ComponentException("Could not set MIME header value.");
    }

    body.setContentFromBytes(fileContentOutput, mimeType, MIMEEntity.ENC_IDENTITY_BINARY);
    final boolean saveSuccessful = document.save();
    if (!saveSuccessful) {
        throw new Exception("Cannot attach file " + fileName + "to document: " + documentUniversalId);
    }

这个方法似乎适用于文件,但是当我尝试上传另一个文件时,我得到以下异常:

NotesException: Item body already exists

当您只有文件的名称和字节数组中的内容时,有没有办法将多个文件附加到文档?

解决方法:

保持第一行创建名为body的“父”MIMEEntity.然后在循环中,为要包含的所有文件创建子MIME实体:

final MIMEEntity child = body.CreateChildEntity;
child.setHeaderVal("attachment; filename=\"" + fileName + "\"");
child.createHeader("Content-Disposition");
child.setContentFromBytes(fileContentOutput, mimeType, MIMEEntity.ENC_IDENTITY_BINARY);

CreateChildEntity

标签:java,mime-types,attachment,lotus-notes,lotus-domino
来源: https://codeday.me/bug/20190626/1289716.html