如何使用 CopyIntoItems 将文件复制到现有的 doclib 项目中
-
25-09-2019 - |
题
这是我的场景:我需要使用其 Web 服务将文件复制到共享点文档库并在其上设置元数据。除了 Lookup 字段之外,这一切都可以通过 CopyIntoItems(来自 Copy webservice)实现。CopyIntoItems 会忽略它们,因此我需要另一种方法来设置这些字段的数据。
我尝试使用必填字段和查找字段元数据创建一个列表项,然后使用项目 ID(使用 ID 创建 FieldInformation 字段以及其他一些简单元数据),调用 CopyIntoItems 方法,而不是更新该项目,sharepoint 创建了一个新项目。
我无法以相反的顺序执行此操作,因为我无法从 CopyIntoItems 创建的项目中获取 ID...
所以,问题是:如何将文件上传到共享点文档库并设置其所有元数据?包括查找字段。
解决方案
- 使用常规 PUT
WebRequest
到 到 上传文件 进图书馆 - 查询文档库找到刚刚上传的项目的ID(根据路径)
- 使用 Lists.asmx Web 服务 更新文档元数据
其他提示
请记住,如果目标文件夹项目计数 + 祖先文件夹项目计数超过列表视图阈值,则您无法查询列表中的 ID(Kit 答案中的步骤 2)。
如果将查询限制在文件夹层次结构中的特定分支,则可以更有效地完成查询。解决方法是修改站点设置,但查询会很缓慢,并且会降低解决方案的可移植性,因为 Office365 和 BPOS 的阈值无法更改。
不隶属于 StackOverflow