请教,如何将A文档的附件拷贝的B文档中?

具体需求如下:

A文档是一个已经存在的文档,另外一个表单中用到上传控件,想在提交的时候本省不保存,而直接把上传的附件保存到A文档中。

注:这样做的目的是为了多人可同时上传,并且避免复制冲突。本人已知的方法是 得到 NotesEmbeddedObject 对象后 使用 ExtractFile 将附件放到服务器物理路径上,之后用NotesRichTextItem对象的EmbedObjec方法将服务器物理路径上的附件在加到Rtf域中。但次方法不好,是否用办法可以直接复制附件,请高手指教!万分感谢!

自己找到答案了,好像没有别的办法,只有先拆分到服务器再加入rtf域。好麻烦


Sub Initialize
   Dim s As New notesSession
    Dim doc As notesDocument
   Set doc = s.documentContext
   Call WebMoveAttachment(Doc, "<Your Rich Text Field Name>")
End Sub
 
函数如下:
 
Function WebMoveAttachment(doc As notesDocument, Byval moveToFieldName As String)
   ' This function moves a file attached via the Web with the File Upload Control to a rich text field.
   Dim s As New notesSession
   Dim tempDir As String
   Dim v2FileNames As Variant
   Dim i As Integer
   Dim attachedFile As notesEmbeddedObject
   Dim filePath As String
    Dim rtItem As notesRichTextItem
   
   tempDir = s.getEnvironmentString("Directory", True)
   ' Put a trailing slash at the end of the directory if it is needed
   If Instr(tempDir, "/") <> 0 And Right(tempDir, 1) <> "/" Then tempDir = tempDir & "/"
   If Instr(tempDir, "\") <> 0 And Right(tempDir, 1) <> "\" Then tempDir = tempDir & "\"
   ' Get the names of all the attachments (1 or more)
   v2FileNames = Evaluate("@AttachmentNames", doc)
   For i = Lbound(v2FileNames) To Ubound(v2FileNames)
      If v2FileNames(i) <> "" Then   ' Make sure it's a valid file name
         Set attachedFile = doc.getAttachment(v2FileNames(i))
         filePath = tempDir & v2FileNames(i)
         ' Save the file on the server
         Call attachedFile.extractFile(filePath)
         ' Create the rich text item and re-attach the file
         If doc.hasItem(moveToFieldName) Then
            Set rtItem = doc.getFirstItem(moveToFieldName)
            ' Add a couple of lines to the rich text field before re-attaching the file
             Call rtItem.addNewLine(2)
         Else
            Set rtItem = New notesRichTextItem(doc, moveToFieldName)
         End If
         Call rtItem.embedObject(1454, "", filePath)
         ' Delete the file(s) from the server file system
         Kill filePath
       End If
   Next   ' Move on to the next file name
End Function
 

运行本函数需要充许执行无限制的代理