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

标签 java mime-types attachment lotus-notes 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 的第一行。然后在一个循环中,为您希望包含的所有文件创建子 MIMEentities:

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 将多个文件附加到 Lotus Domino 中的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11294991/

相关文章:

java - 如何等到 TCP 端口在 Java 中真正( native )关闭?

zip - zip mime类型,何时选择哪一个

asp.net - 为什么 FireFox 下载文件时不包含 .xml 扩展名?

ssis - 在 SSIS 包中发送带有附件的邮件任务

android - 用于从 Android 上的 gmail 应用程序下载附件的 Intent 过滤器

Android将多个文件从sdcard附加到电子邮件

java - 为什么在 Java 中将私有(private)内部类成员设为公有?

javax.crypto.IllegalBlockSizeException : Data must not be longer than 256 bytes

java - 使用Java中的OperationBuilder类在tensorflow-java中构建图

python - 如何从 HTTP header 响应中解析 Content-Type 的值?