2

我正在从 Sharepoint 库中检索文档列表。假设我的任务是将该列表中的第一个文档检索给用户,以便他可以打开一个 docx 文件。我该怎么做呢?

更复杂的是共享点服务器位于另一个域上。我正在处理的 Web 项目会将文档呈现给客户,但不会公开对共享点服务器的直接访问。

    ClientContext clientContext = new ClientContext(URL);
    List list = clientContext.Web.Lists.GetByTitle("My Documents");

    CamlQuery camlQuery = new CamlQuery();
    camlQuery.ViewXml = XML;
    ListItemCollection listItems = list.GetItems(camlQuery);
    clientContext.Load(
         listItems,
         items => items.Include(item => item["FileRef"]));

    clientContext.ExecuteQuery();

    // return this file to the user
    // listItems[0];
4

2 回答 2

3

您可以根据此查询的结果创建“A”元素,以便用户只需单击包含项目完整路径的链接(这大致是常规 SharePoint 列表的呈现方式)。

于 2011-04-18T23:29:53.250 回答
1

该解决方案的执行摘要如下。生成锚标记时,请包含来自 FileRef 字段的信息,您的文档应该为其设置一个值。这是您稍后将使用的参考字段。

您将在致电时使用该参考

        FileInformation fileInformation = Microsoft.SharePoint.Client.File.OpenBinaryDirect(clientContext, reference);

        Stream stream = fileInformation.Stream; 
        if (stream != null)
        {
            documentName = Path.GetFileName(reference);

            return new FileStreamResult(stream, "unknown")
            {
                FileDownloadName = documentName
            };
        }
于 2011-04-26T17:21:30.077 回答