有没有办法使用 item_id 以外的字段(即,在我的列表中使用我自己的主键)将附件添加到 SharePoint 列表项?

问题描述 投票:0回答:1

我希望根据我自己的主键(而不是 SharePoint 使用的自动生成的 item_id 字段)向各种列表项添加 1 个(或更多)附件。

以下是通过 SharePoint REST API 将附件添加到 SharePoint 中的列表项的模板:

POST https://{site_url}/_api/web/lists/getbytitle('{list_title}')/items({item_id}/AttachmentFiles/add(FileName='{file_name}')
Authorization: "Bearer " + accessToken
Content-Length: {length of request body as integer}
X-RequestDigest: "{form_digest_value}"

"Contents of file"

有没有办法更改上述 URL 以在 item_id 之外的其他内容上添加附件?下面的 GET 请求端点示例根据指定的键:值对进行过滤以检索字段(包括上面 URL 指定的 item_id),但我想知道如何直接根据我指定的字段添加附件尽可能减少 API 调用次数。

/_api/web/lists/GetByTitle('List')/items?$filter=MyPrimaryKey eq '...'

我尝试构建自己的 URL,该 URL 使用附件创建和各种过滤,但任何此类尝试都会产生 400 错误,表明格式/URL 构建无效。

sharepoint-online sharepoint-rest-api
1个回答
0
投票

遗憾的是,无法使用 SharePoint REST API 调用使用基于自定义字段/列的过滤器将附件添加到列表项。

您仅需要使用项目 ID 来将附件添加到 SharePoint 列表项目。

(您可能已经知道这一点)因此,您必须首先使用您提到的第二个 API 调用来获取项目 ID:

/_api/web/lists/GetByTitle('List')/items?$filter=MyPrimaryKey eq '...'

然后使用从上述 API 调用中获取的项目 ID 将附件添加到 SharePoint 列表项,如第一个 API 调用中所述:

https://{site_url}/_api/web/lists/getbytitle('{list_title}')/items({item_id}/AttachmentFiles/add(FileName='{file_name}')

文档

  1. 使用 SharePoint REST 端点完成基本操作
  2. 使用 REST 处理列表和列表项
© www.soinside.com 2019 - 2024. All rights reserved.