Xpages将附件从当前文档复制到新文档

Xpages将附件从当前文档复制到新文档,xpages,mime-types,attachment,document,Xpages,Mime Types,Attachment,Document,我有一个xpage,其中文档有多个附件,我想将一个选定的附件复制到新文档以进一步处理它 现在,到目前为止,我可以在NotesEmbeddedObject中获取所选附件 代码: 上面的代码工作得很完美。这意味着我现在有了附件。现在我的任务是将其复制到新文档中 我已经通过研究给出了一个尝试 // in above else var doc_new_attach:NotesDocument = database.createDocument(); var mimeRoot:NotesMIMEEn

我有一个xpage,其中文档有多个附件,我想将一个选定的附件复制到新文档以进一步处理它

现在,到目前为止,我可以在NotesEmbeddedObject中获取所选附件

代码:

上面的代码工作得很完美。这意味着我现在有了附件。现在我的任务是将其复制到新文档中

我已经通过研究给出了一个尝试

  // in above else 
var doc_new_attach:NotesDocument = database.createDocument();
var mimeRoot:NotesMIMEEntity=doc_new_attach.getMIMEEntity("Body");
var child:NotesMIMEEntity=mimeRoot.createChildEntity();
var is = new java.io.BufferedInputStream(attchment.getInputStream());
var stream:NotesStream = session.createStream();
stream.setContents(is);
child.setContentFromBytes(stream, attchment.getType(),NotesMIMEEntity.ENC_IDENTITY_BINARY); 
事实上,我不擅长notes富文本,实现这一点的另一种方法是Document.copyAllItems(Document doc,boolean replace),而不是删除不必要的内容。但我想知道如何将所选附件复制并添加到其他文档中


任何建议都将不胜感激。

文档。copyItem(Item)
可能是您所需要的,要将指定的
项目
复制到指定的
文档中
从一个文档选择性地附加到另一个文档

代码:

在上面的代码中,我硬编码了“mimeType”,因为我无法从包含ActAttachment和“attchment.getType()”的文档中获取内容类型;返回“Interger”,而“mimeType”不接受它。可以帮助我获取内容类型。
否则,休息所有完美的工作,以获得并把附件,我需要从一个文件到另一个

是的,可能是文档。copyItem(项目)将帮助我从该文档中获取项目,例如通过文档。copyItem(项目),我可以从文档中获取所有附件,但实际上我只需要从该项目中选择一个附件。我得到了此问题的解决方案,请检查我发布的答案,如果我有错误,请更正我。
  // in above else 
var doc_new_attach:NotesDocument = database.createDocument();
var mimeRoot:NotesMIMEEntity=doc_new_attach.getMIMEEntity("Body");
var child:NotesMIMEEntity=mimeRoot.createChildEntity();
var is = new java.io.BufferedInputStream(attchment.getInputStream());
var stream:NotesStream = session.createStream();
stream.setContents(is);
child.setContentFromBytes(stream, attchment.getType(),NotesMIMEEntity.ENC_IDENTITY_BINARY); 
 session.setConvertMime(false);
 var attachmentDoc:NotesDocument=database.getDocumentByUNID(currentDocId);
  // where currentDocId is the document with all the attachments.
 var attchment:NotesEmbeddedObject=attachmentDoc.getAttachment("someFile.txt");
 // Just to verify
 if(attchment == null){
     view.postScript("alert('Attachment not Exist')");
 }
 else
 {
     var fileName = "someFile.txt";
     var doc_new_attach:NotesDocument = database.createDocument();  
     var body:NotesMIMEEntity= doc_new_attach.createMIMEEntity(fileName);
     var bodyHeader:NotesMIMEHeader = body.createHeader("Content-Disposition");
     var isHeaderValSet = bodyHeader.setHeaderVal("attachment; filename=\"" + fileName + "\"");    
    if (!isHeaderValSet) {
         throw new ComponentException("Could not set MIME header value.");
    }
    var is = new java.io.BufferedInputStream(attchment.getInputStream());   
    var stream:NotesStream = session.createStream();
    stream.setContents(is);

    var mimeType = "text/csv"; 
    body.setContentFromBytes(stream, mimeType, 1730);    
    doc_new_attach.replaceItemValue("Form","AttachmentTesting");
    doc_new_attach.save(false);

    session.setConvertMime(true);
 }