通过REST API创建的SharePoint列表图片列无法显示图片预览的问题求助
我写了一个通过SharePoint REST API创建"hyperlinkOrPicture"类型列的方法(Graph API里是这么称呼该类型的,SharePoint API则用FieldTypeKind值来标识列类型),本质就是可切换为纯超链接或图片列的URL列,代码如下:
async function createHyperlinkOrImage(sharePointAPIaccessToken, listId, columnName, isImage) { const sharePointApiUrl = `${process.env.SITE_URL}/_api/web/lists(guid'${listId}')/fields`; // FieldTypeKind = 11 => URL type // DisplayFormat = 0 => Hyperlink, 1 => Image const sharePointPayload = { "__metadata": { "type": "SP.FieldUrl" }, "Title": columnName, "FieldTypeKind": 11, "DisplayFormat": isImage ? 1 : 0, }; try { const response = await fetch(sharePointApiUrl, { method: "POST", headers: { Authorization: `Bearer ${sharePointAPIaccessToken}`, Accept: "application/json;odata=verbose", "Content-Type": "application/json;odata=verbose", }, body: JSON.stringify(sharePointPayload), }); // error handling } }
现在列能正常创建,纯超链接的场景(isImage设为0)完全没问题,但**设置为图片列(isImage设为1)**时遇到了问题:上传图片后,单元格里不会像手动创建的图片列那样渲染出图片预览——手动创建图片列的路径是"添加列"→"图片",这种方式创建的列是能正常显示图片的。
我对比了两种方式创建的列,发现几个关键差异:
- 单元格显示差异:API创建的图片列单元格只显示链接文本,手动创建的列直接展示图片缩略图
- 列设置差异:
- API创建的列在"列设置"页面里,没有显示"类型"相关的标识
- 手动创建的列在设置页面明确标注了"类型:图片"
- 新增项目时的差异:API创建的图片列在"添加新项目"页面只有普通文本输入框,无法直接上传图片;手动创建的列有专门的图片上传入口
虽然从列名称旁边的图片图标来看,SharePoint应该识别出这是图片列,但它实际的行为却和超链接列完全一样,有没有朋友知道哪里出问题了?
备注:内容来源于stack exchange,提问作者Abid
相关产品推荐
相关产品推荐

