上传新附件时替换附件

Tho*_*ian 0 file-upload save xsp xpages

我有一个简单的形式和身体领域.当用户上传附件时,我想删除文档正文字段中已有的任何附件.我该如何在保存按钮中执行此操作.

我试图在fileUpload控件上设置适当的文件以始终将文件名更改为相同的名称,但这不会替换文件,而是添加新文件并向其添加新的序列号

<xp:fileUpload id="fileUpload1" value="#{userdoc.Body}" filename="profile"     seUploadname="false"></xp:fileUpload>
Run Code Online (Sandbox Code Playgroud)

我还尝试在保存前将所有嵌入的附件循环到正文字段中,然后删除所有附件,但不添加我的新附件.

Mar*_*ink 7

有点晚了,但万一有人像我通过谷歌一样来到这里...

还有另一种选择:NotesXSPDocument.getAttachmentList("rtitem")返回文档中的附件列表.每个条目都是DominoDocument.AttachmentValueHolder类型,它具有getState()属性,如果文件已经在文档中或刚刚添加,则返回该属性.要删除文档中已有的文件,可以将此SSJS代码添加到保存按钮(假设"files"是包含文件的richtext项的名称):

var attList = docFile.getAttachmentList("files");

for(var i=0; i<attList.size(); i++) {
  var att = attList.get(i);

  if (att.getState()==0) {      //STATE_INDOCUMENT: this is the 'old' file: remove it
    docFile.removeAttachment("files", att.getName() );
  } else if (att.getState()==1) {       //STATE_ADDED: this is the new file
           //leave it           
  } 
}
Run Code Online (Sandbox Code Playgroud)