【发布时间】:2020-09-14 06:43:26
【问题描述】:
我正在尝试使用 GetImagePreviewUrl 的 CSOM 调用,但我相信我可能没有正确使用它。
虽然我可以使用 C# 编写代码,但我不是 SharePoint 用户或管理员,因此这可能是我的问题的一部分。我对我正在查询的 SharePoint 中的网站拥有完全访问权限,我可以毫无问题地调用 ClientContext 并返回 Microsoft.SharePoint.Client.File。我正在使用相同的代码来获取系统中其他位置的列表和文件信息。从这个文件中可以看出,我应该能够调用 GetImagePreviewUrl 并返回预览图像。该调用将返回一个 Microsoft.SharePoint.Client.ClientRequest 但值始终为空(下图)。为简洁起见,以下是我的代码行。
var ctx = new ClientContext("http://mysharepointResource/andSite");
ctx.ExecutingWebRequest += appendBearerToken; // just adding headers here
ctx.RequestTimeout = Timeout.Infinite;
Microsoft.Sharepoint.Client.File file = ctx.Web.GetFileByUrl(value);
ctx.Load(file);
await ctx.ExecuteQueryAsync();
var previewUri = file.GetImagePreviewUri(300,300, "docLibGrid");
我在想这里可能有两件事可能是错误的,首先我可能为第三个参数使用了错误的值。我的示例代码使用“docLibGrid”字符串,因为我从一个示例中得到了它,我看到了here. 但也许这应该像一个网页标题内容类型值。它应该是像预览图像一样的“图像/jpeg”值,还是应该代表原始文件的内容类型?我尝试了几种不同的标头类型,它们返回相同的 NULL 值。
我的第二个想法是我可能在 SharePoint 网站本身上设置了错误,因此我在返回的 ClientResult 的值字段中收到 NULL。我是否需要让管理员打开某些东西,或者我需要验证预览图像是否存在?我去过 SharePoint 网站并按照几种方法查看预览图像,所以我认为不是这样。
感谢任何帮助或指点,谢谢。
【问题讨论】:
标签: c# sharepoint csom