通过REST API从SharePoint文件夹获取包含自定义字段的文件

时间:2016-03-26 20:40:24

标签: rest sharepoint sharepoint-2013

我有一个包含文件夹的图片库。根文件夹包含另一个以年命名的文件夹。每年文件夹包含多个相册文件夹。至少每张专辑彩票都包含图片。我创建了新的布尔字段'IsCover',它定义了专辑的封面图像。 然后我尝试通过REST API获取带有文件的相册文件夹,我想知道哪个文件是封面的,但响应不包含这样的字段。

http://portal/_api/web/getfolderbyserverrelativeurl('mediagallery/2016/')/Folders?$expand=Files

"CheckInComment": "",
"CheckOutType": 2,
"ContentTag": "{4E99ABFD-51A3-460F-9B34-1A1962F3C2CF},1,2",
"CustomizedPageStatus": 0,
"ETag": "\"{4E99ABFD-51A3-460F-9B34-1A1962F3C2CF},1\"",
"Exists": true,
"Length": "98331",
"Level": 1,
"MajorVersion": 1,
"MinorVersion": 0,
"Name": "IMG_3474.JPG",
"ServerRelativeUrl": "/MediaGallery/2016/NY/IMG_3474.JPG",
"TimeCreated": "2016-03-20T21:00:27Z",
"TimeLastModified": "2016-03-20T21:00:27Z",
"Title": null,
"UIVersion": 512,
"UIVersionLabel": "1.0"

如果我试图获取库中的所有项目,那没关系,它会显示我的字段。

http://portal/_api/web/lists('guid')/Items

我尝试使用$select获取字段但不起作用。

http://portal/_api/web/getfolderbyserverrelativeurl('mediagallery/2016/')/Folders?$expand=Files&$select=Name,Files/ServerRelativeUrl,Files/IsCover

2 个答案:

答案 0 :(得分:2)

http://portal/_api/web/getfolderbyserverrelativeurl('mediagallery/2016/')/Folders?$expand=Files

此请求仅限制文件内容类型的字段。要查看列表项中的字段,您应该将ListItemAllFields添加到$ expand参数。

http://portal/_api/web/getfolderbyserverrelativeurl('mediagallery/2016/')/Folders?$expand=Files,Files/ListItemAllFields

此查询将返回ListItemAllFields部分中的列表项和自定义字段。

答案 1 :(得分:2)

我知道这已经快一年了,但我在尝试在文档库中找到自定义列时遇到了类似的问题,here给了我答案;

   
var baseUrl = “/_api/Web/GetFolderByServerRelativeUrl(‘Pages/Landing Pages’)/Files?”;
var selectQuery = “$select=ListItemAllFields/ID,ListItemAllFields/Title,ListItemAllFields/FileRef,ListItemAllFields/Modules&”;
var expandQuery = “$expand=ListItemAllFields”;
var combinedUrl = baseUrl + selectQuery + expandQuery;

只需更改列名称的ID,标题等

即可

由于

伊恩