将InputStream的内容写入RichTextItem并附加到Java中的Notes文档
我能够将一个文件附加到domino文档的将InputStream的内容写入RichTextItem并附加到Java中的Notes文档,java,attachment,lotus-notes,lotus-domino,lotus,Java,Attachment,Lotus Notes,Lotus Domino,Lotus,我能够将一个文件附加到domino文档的RichTextItem,该文档是作为InputStream接收的。下面是代码片段: attachDocument(InputStream is){ ..... File attFile = saveInputStr(is); Document attdoc = testdb.createDocument(); attDoc.replaceItemValue("Form", "formAttachment"); Ri
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());
.....
}
这个很好用。但是,如果我不想将文件写入磁盘,比如我将其保存到
文件
,即上面代码段中的attFile
,该怎么办。有没有一种方法可以将InputStream
的内容写入一个文件(可能使用一些notes文档)并将其附加到磁盘而不必保存。通过JAVA API(或LotusScript,COM),除了使用EmbeddeObject方法外,我看不到向富文本项添加附件的方法。不幸的是,embedObject方法只接受一个指向要导入的文件位置的字符串。如果没有办法传入一个实际的对象,那么您似乎需要将文件放在磁盘上并传递到该文件的路径。通过JAVA API(或LotusScript,COM),除了使用EmbeddeObject方法外,我看不到任何向富文本项添加附件的方法。不幸的是,embedObject方法只接受一个指向要导入的文件位置的字符串。如果没有办法传入实际对象,您似乎需要将文件保存在磁盘上,并传递该文件的路径。我实际上找到了问题的解决方案。也许这对某人会有帮助
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();
.....
}
我真的找到了问题的答案。也许这对某人会有帮助
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();
.....
}
您从哪里获得的
输入流是?我的意思是它的来源是什么,另一个embeddedObj.getInputStream()
或其他什么?很抱歉回复晚了..是的,我得到的输入流是这样的。。我找到了解决办法。我已经回答了下面的问题..你从哪里得到的输入流是
?我的意思是它的来源是什么,另一个embeddedObj.getInputStream()
或其他什么?很抱歉回复晚了..是的,我得到的输入流是这样的。。我找到了解决办法。我已经在下面回答了……这是正确的。我们的方法通常是在文件系统上创建一个文件夹,并在完成后进行清理和删除。这是正确的。我们的方法通常是在文件系统上创建一个文件夹,并在完成后进行清理和删除。嗨!多米诺和尤蒂尔属于哪个包裹?嗨!多米诺和欧蒂尔属于哪个包裹?