我可以将文件附加到我以RichTextItem
收到的多米诺骨牌文档的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());
.....
}
这很好用。但是,如果我不想将文件写入磁盘,例如我将其保存到上面代码段中的File
即attFile
,该怎么办?有没有办法将InputStream
的内容写入文件(可能正在使用一些备注文档)并将其附加到保存到磁盘上。
答案 0 :(得分: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();
.....
}
答案 1 :(得分:1)
通过JAVA API(或LotusScript,COM)我没有看到使用除embedObject方法之外的任何东西向富文本项添加附件的方法。不幸的是,embedObject方法只接受一个指向要导入的文件位置的字符串。如果没有传递实际对象的方法,您似乎需要将该文件放在磁盘上并将路径传递给该文件。