将附件添加到xpage

时间:2013-08-08 08:29:49

标签: xpages

我有一个XPage,数据源附加到备注文档。在这个XPage上,我有一个调用托管bean中的方法的按钮。此方法从另一个Notes数据库中检索notes文档。本笔记文档在richtext字段中有一些附件。这些附件应复制到我的XPage中。

有没有办法实现这个目标?

我知道如何从备注文档中检索附件。但是我如何将它们附加到我的XPage?

对于我的任务,我不能使用文件上传控件,因为“文件上传”应该在我的mananged bean中自动发生。

我找到了一些可以完成我的任务的调用AttachmentHolderValue的东西,但不幸的是没有这个类的文档。

1 个答案:

答案 0 :(得分:0)

好的下载显示你可以使用这样的代码:

<xp:this.data>
    <xp:dominoDocument var="yourNewDocument"></xp:dominoDocument>
</xp:this.data>

<xp:panel>
    <xp:this.data>
        <xp:dominoDocument ignoreRequestParam="true" var="download" action="openDocument"
            databaseName="otherDatabase" documentId="calculated">
        </xp:dominoDocument>
</xp:this.data>
    <xp:fileDownload rows="30" id="fileDownload1"
        displayLastModified="false" value="#{download.richTextItem}">
    </xp:fileDownload>
</xp:panel>

这会将来自其他数据库的Document添加为dominoDocument dataSource,您可以使用它将<xp:fileDownload>绑定到。

然后你可以添加一些内容来选择你要复制到新文档的附件,我将重新编写一个重复控制并使用它:

    <xp:repeat id="repeat1" rows="30"
        value="#{javascript:download.getAttachmentList('richTextItem');}"
        var="attachment">
    <xp:panel>
        <xp:label value="#{javascript:attachment.getName() }" id="label1"></xp:label>
        <xp:br></xp:br></xp:panel></xp:repeat>

标签上你可以添加一个复选框,在onSave事件中你可以运行一些代码,将所选元素复制到新文档中(必须在我的应用程序中查找)。

您可以使用NotesDocument.copyAllItems()复制它们或将附件保存到服务器磁盘,并将ritem.embedObject添加到新文档richTextItem中。但是我建议在我的expirience中使用附件进行附件复制可能是一个非常棘手的部分。