如何使用CopyIntoItems将文件复制到现有的doclib项目中

时间:2010-09-28 02:54:39

标签: web-services sharepoint upload metadata document-library

这是我的方案:我需要使用其Web服务将文件复制到sharepoint文档库并在其上设置元数据。除了Lookup字段之外,使用CopyIntoItems(来自Copy webservice)可以实现这一切。 CopyIntoItems忽略它们,所以我需要另一种方法来设置这些字段的数据。

我尝试使用强制和查找字段元数据创建一个列表项,然后使用项ID(创建带有ID的FieldInformation字段以及一些其他简单元数据),称为CopyIntoItems方法,而不是更新项目,sharepoint创建了一个新项目。

我不能以相反的顺序执行此操作,因为我无法从CopyIntoItems创建的项目中获取ID ...

所以,问题是:如何将文件上传到sharepoint文档库并设置其所有元数据?包括查找字段。

2 个答案:

答案 0 :(得分:2)

  1. 使用常规PUT WebRequestupload the document进入库
  2. 查询文档库以查找刚刚上传的项目的ID(基于路径)
  3. 使用Lists.asmx web service更新文档元数据
  4. 有用的链接:Uploading files to the SharePoint Document Library and updating any metadata columns

答案 1 :(得分:0)

请记住,如果目标文件夹项目数+祖先文件夹项目数超过列表视图阈值,则无法在列表中查询ID(来自Kit答案的第2步)。

如果约束到文件夹层次结构中的特定分支,则可以更有效地完成查询。解决方法是修改站点设置,但查询会缓慢,并且会降低解决方案的可移植性,因为Office365和BPOS的阈值无法更改。

这解释得更好:http://office.microsoft.com/en-us/office365-sharepoint-online-enterprise-help/create-or-delete-a-folder-in-a-list-or-library-HA102771961.aspx