【问题标题】:copy attachment from other document on fly即时从其他文档复制附件
【发布时间】:2014-02-18 15:33:03
【问题描述】:

保存我当前的 XPage 后,如果 postNewDocument of datasources..我会在后端 Domino 文档中即时复制,而不用从另一个文档保存磁盘附件,我找到了这个解决方案:

  var attachments:java.util.Vector = session.evaluate("@AttachmentNames", docReply);
  for (var i = 0; i < attachments.size(); i++) {
     embeddedObj = docReply.getAttachment(attachments.get(i).toString());
     if (embeddedObj != null) {
       bufferInStream = new java.io.BufferedInputStream(embeddedObj.getInputStream());
     }
  }

如何将每个附件流添加到当前 Domino 文档的 RichTextItem 中?

Tnx

14 年 1 月 29 日更新: Tnx 到 @Sven 我已将此代码插入到我的 PostSavedocument 事件中。 但是现在我遇到了另一个问题...似乎损坏了 MIME 我的“Body”,即 rt mime。

如果我用我的 Notes 客户端打开带有这个 RT mime 的文档,我只会看到新的附件,而不是 CKEDITOR 的原始 HTML 内容(如果我评论以下代码......工作正确)......现在我有重新编辑的问题存在 MIME 文件

 session.setConvertMime(false);
var doc:NotesDocument=document1.getDocument(true);
var mimeRoot:NotesMIMEEntity=doc.getMIMEEntity("Body");
var docAttach:NotesDocument=database.getDocumentByUNID('XXXXXXXUNID'); //doc where are the attachmetns files MIME or RICHTEXT


var XSPReply=wrapDocument(docAttach);  //function in Xsnippets from Opentntf.org
var listattachs=XSPReply.getAttachmentList("Body");

for (var i=0; i<listattachs.length; i++) {
   var is=null;
   var att = listattachs[i];
   var persistentName = att.getPersistentName()==null?att.getName():att.getPersistentName();
   var cid = att.getCID();
   var eo:NotesEmbeddedObject = docAttach.getAttachment(persistentName);
   if (null != eo) {
      var child:NotesMIMEEntity=mimeRoot.createChildEntity(); //create child of original mail
      var emailHeader:NotesMIMEHeader = child.createHeader("Content-Disposition");
      emailHeader.setHeaderVal("attachment; filename=\"" + persistentName+ "\"");
      emailHeader = child.createHeader("Content-ID");
      emailHeader.setHeaderVal("<" + cid + ">");
      var is = new java.io.BufferedInputStream(eo.getInputStream());
      var stream:NotesStream = session.createStream();
      stream.setContents(is);
      child.setContentFromBytes(stream, att.getType(),NotesMIMEEntity.ENC_IDENTITY_BINARY);
    }
}

doc.closeMIMEEntities(true,"Body")
doc.save()
session.setConvertMime(true);

【问题讨论】:

    标签: xpages xpages-ssjs


    【解决方案1】:

    您可以尝试将附件添加为 MIME 实体。看看这里的例子:Link

    【讨论】:

    • 我已经使用了这个解决方案...但是我没有什么问题...关注我的更新
    • 我实际上陷入了同样的问题,我有附件名称和附件所在的文档。我希望将该特定附件附加到另一个文档中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多