【问题标题】:How do I return a document from a Sharepoint Document library to the user?如何将文档从 Sharepoint 文档库返回给用户?
【发布时间】:2011-04-18 22:41:33
【问题描述】:

我正在从 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];

【问题讨论】:

    标签: c# asp.net-mvc sharepoint sharepoint-list


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      解决方案的执行摘要如下。生成锚标记时,请包含来自 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
                  };
              }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-25
        • 2020-06-01
        相关资源
        最近更新 更多