如何将多个文件上传到XPage中的不同文档?

时间:2014-09-19 17:15:29

标签: file-upload xpages

我需要使用5个不同的文件上传控件同时上传最多5个文件,并且所有文件都需要存储到单独的便笺文档中。应该只有一个保存按钮

因此,如果我上传5个文件并保存,则应该有5个Notes文档,每个文件包含1个文件

我该怎么做?

3 个答案:

答案 0 :(得分:3)

我没有从MWLug中清理过这个 - 我的解决方案是fileVault,你可以在这里抓到它。 https://bitbucket.org/leedy/filevault 存储库中有幻灯片,但我还没有真正的文档。下一步将是即将推出的NotesIn9视频。

这是PLupload和Java的组合,因此允许上载在一系列Vault数据库中每个文档保存1个的多个文件。 JPG'(原始,大和小)有3个数据库,其他文件有1个.nsf。

我根本不使用内置文件上传或下载控件。所以,如果你真的想要,你可以忽略它。

我有一些自定义控件用于显示图片和文件以及灯箱自定义控件 - Galleria。

我们目前在生产中使用它,但是这个版本可以使用更多的清理和文档。但是欢迎你试试。

存储库具有最佳使用的原始源,但如果更容易,它还具有已编译的模板。

祝你好运

答案 1 :(得分:1)

创建一个包含5个面板的xpage,使用ignoreRequestPatams = false将每个面板绑定到不同的文档数据源。

在每个面板中都有文件上传和下载控件。 选择更改事件上文件上传的完整更新。

在所有5个面板上创建保存按钮以保存所有5个数据源。

答案 2 :(得分:0)

我找到了一个似乎有用的解决方案。 我将文档数据源和文件上载控件重复放在一起,然后使用链接保存所有数据源。我将重复设置为5,这将创建5个文档。

在数据源的postSaveDocument中,我删除了不包含附件的onces

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:panel>
    <xp:repeat id="repeat1" rows="30" value="#{javascript:5}">
        <xp:panel>
            <xp:this.data>
                <xp:dominoDocument var="d" formName="Main">
                    <xp:this.postSaveDocument><![CDATA[#{javascript:if(@AttachmentLengths()==0){
d.getDocument().remove(true)
}}]]></xp:this.postSaveDocument>
                </xp:dominoDocument>
            </xp:this.data>
            <xp:fileUpload id="fileUpload1" value="#{d.Body}"></xp:fileUpload>
        </xp:panel>
    </xp:repeat>
</xp:panel>
<xp:link escape="true" text="Save" id="link1">
        <xp:eventHandler event="onclick" submit="true" refreshMode="complete">
            <xp:this.action><![CDATA[#{javascript:save(true)}]]></xp:this.action>
        </xp:eventHandler>
</xp:link>