Как мне вернуть документ из библиотеки документов Sharepoint пользователю?

Я получаю список документов из библиотеки Sharepoint. Допустим, моя задача - получить самый первый документ в этом списке для пользователя, чтобы он мог открыть файл docx. Как мне это сделать?

Еще одна сложность заключается в том, что сервер sharepoint расположен в другом домене. Веб-проект, над которым я работаю, предоставит клиенту документы, но не предоставит прямой доступ к серверу sharepoint.

    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];

person MedicineMan    schedule 18.04.2011    source источник


Ответы (2)


Вы можете создать элемент «A» на основе результата этого запроса, чтобы пользователь мог просто щелкнуть ссылку с полным путем к элементу (примерно так отображаются обычные списки SharePoint).

person Alexei Levenkov    schedule 18.04.2011

Краткое изложение решения выглядит следующим образом. При создании тегов привязки включите информацию из поля 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
            };
        }
person MedicineMan    schedule 26.04.2011