2014-01-27 37 views
1

保存我当前的XPages后,在数据源的postNewDocument事件中,我将在后端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我“身体“这是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); 

回答

3

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

+0

我已经使用这个解决方案...但我有小问题...按照我的更新 –

+1

我实际上在同一个东西stucked我有接管名称和其中的文件我想要那个特别的证明文件附在理事会文件中。 –