Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将InputStream的内容写入RichTextItem并附加到Java中的Notes文档_Java_Attachment_Lotus Notes_Lotus Domino_Lotus - Fatal编程技术网

将InputStream的内容写入RichTextItem并附加到Java中的Notes文档

将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

我能够将一个文件附加到domino文档的
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()
或其他什么?很抱歉回复晚了..是的,我得到的输入流是这样的。。我找到了解决办法。我已经在下面回答了……这是正确的。我们的方法通常是在文件系统上创建一个文件夹,并在完成后进行清理和删除。这是正确的。我们的方法通常是在文件系统上创建一个文件夹,并在完成后进行清理和删除。嗨!多米诺和尤蒂尔属于哪个包裹?嗨!多米诺和欧蒂尔属于哪个包裹?