2

我可以将一个文件附加到RichTextItem我收到的 .domino 文档中InputStream。下面是代码片段:

attachDocument(InputStream is){
    .....
    File attFile = saveInputStr(is);
    Document attdoc = testdb.createDocument();
    attDoc.replaceItemValue("Form", "formAttachment");
    RichTextItem rti = (RichTextItem) attDoc.getFirstItem("attachment");
    rti.embedObject(EmbeddedObject.EMBED_ATTACHMENT, "", attFile .getPath(), attFile .getName());
    .....
}

这工作正常。但是如果我不想将文件写入磁盘怎么办,就像我将它保存到上面代码段中的Fileie一样。attFile有没有办法将内容写入InputStream文件(可能使用一些笔记文档)并将其附加而不保存到磁盘。

4

2 回答 2

2

通过 JAVA API(或 LotusScript、COM),除了 embedObject 方法之外,我没有看到任何方法可以将附件添加到富文本项。不幸的是,embedObject 方法只接受一个指向要导入的文件位置的字符串。如果无法传入实际对象,您似乎需要将文件放在磁盘上并将路径传递给该文件。

于 2013-07-02T19:07:10.623 回答
2

我实际上找到了我的问题的解决方案。也许对某人有帮助

attachDocument(InputStream is){
        .....
        //File attFile = saveInputStr(is);
        Document attdoc = testdb.createDocument();
        attDoc.replaceItemValue("Form", "formAttachment");
        //RichTextItem rti = (RichTextItem) attDoc.getFirstItem("attachment");
        //rti.embedObject(EmbeddedObject.EMBED_ATTACHMENT, "", attFile .getPath(), attFile .getName());
        attDoc.getFirstItem("attachment");
        Stream stream = DominoUtils.getCurrentSession().createStream();
        stream.write(IOUtils.toByteArray(is));
        MIMEEntity me = attDoc.createMIMEEntity("attachment"); 
        me.setContentFromBytes(stream, "application/pdf", MIMEEntity.ENC_IDENTITY_8BIT);
        is.close();
        attdoc.save();
        .....
    }
于 2013-07-07T10:00:13.717 回答