我需要使用5个不同的文件上传控件同时上传最多5个文件,并且所有文件都需要存储到单独的便笺文档中。应该只有一个保存按钮
因此,如果我上传5个文件并保存,则应该有5个Notes文档,每个文件包含1个文件
我该怎么做?
答案 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>