Получите URL-адрес веб-приложений Office для документа в 2010 и 2013 годах

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/64280

  •  10-12-2019
  •  | 
  •  

Вопрос

При просмотре библиотеки документов, если включены веб-приложения Office, URL для каждого офисного документа отправляется в соответствующий веб-просмотрщик, а не фактическую ссылку на документ.Например:

http://server/_layouts/WordViewer.aspx?id=/Shared%20Documents/Document.docx&Source=http%3A%2F%2Fserver%2FShared%2520Documents%2FForms%2FAllItems%2Easpx&DefaultItemOpen=1&DefaultItemOpen=1
.

в C # Если я получаю URL-адрес документа из SPLISTITEM.FILE, он дает мне прямой URL в документ, а не URL-адрес Office Web Apps.

Как я могу получить версию URL-адреса Web Apps Office от Code?

Спасибо!

Это было полезно?

Решение

Я нашел лучшее программное решение: функция spotivy.maptoserverfileredirect.

В файлах C: \ Program \ Common Files \ Microsoft Shared \ Web Server Extensions \ 14 \ Template \ XML - это куча файлов XML Serverfiles, которые рассказывают SharePoint, как перенаправить определенные типы файлов и т. Д. Офисные веб-приложенияИспользует это для перенаправления ссылок на файлы Office на страницы Office Web Apps.

Итак, я могу использовать следующее, чтобы получить URL-адрес Web Apps Office (или любой другой специально обрабатываемый URL-адрес Redirect):

//file is a SPFile object, GetAbsoluteUrl is an extension method we use to get the full URL for an SPListItem
var url = SPUtility.MapToServerFileRedirect(web, file.Item.GetAbsoluteUrl(), file.ProgID);
.

Редактировать Вместо этого необходимо использовать следующий метод:

 SPUtility.GetServerFileRedirectForLinking
.

Другие советы

Можем ли мы сделать это для навесных элементов списка SharePoint?

Если возможно, пожалуйста, предложите мне нужный код.Еще одна вещь, пожалуйста, определите метод file.item.getaboluteurl (), потому что он не работает для вложений.

SPFile file = item.ParentList.ParentWeb.GetFile(item.Attachments.UrlPrefix + item.Attachments[i].ToString());

var url = SPUtility.MapToServerFileRedirect(objWeb, file.Item.Web.Url + "/" + file.Url, file.ProgID);
.

Я получаю исключение.я Ссылка объекта не установлена на экземпляр объекта.

Спасибо заранее. Ожидание вашего ответа.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top