Das Thema taucht immer wieder auf: Wie können Dokumente direkt aus SharePoint in der entsprechenden Applikation geöffnet werden? Immer wieder wird darauf hingewiesen, dass man auf Web-Application-Ebene das "Browser File Handling" auf "Permissive" gestellt werden soll. Das allein reicht aber unter Umständen nicht aus. Dieser Blog-Beitrag zeigt, wie man es zu 99% schaffen sollte.
Was muss nun wirklich getan werden, damit eine in SharePoint gespeicherte Datei direkt geöffnet und nicht zuerst lokal heruntergeladen werden muss?
Bedingung 1: OpenControl="" in DocIcon.xml
In derDatei docIcon.xml im Verzeichnis 14\TEMPLATE\XML sicherstellen, dass die Datei-Endung registriert ist UND auch, dass sie ein Attribut "OpenControl" hat, für welches kein Wert gesetzt ist. Beispiel für MSG:
<Mapping Key="msg" Value="icmsg.png" OpenControl=""/>
Bedingung 2: Web-Application Browser File Handling ist Permissive
- SharePoint 2010 Central Administration öffnen
- Application Management auswählen
- Im Bereich Application Management Manage Web Applications auswählen
- Die entsprechende Web Application auswählen und im Ribbon auf „General Settings“ klicken
- Im Bereich „Browser File Handling“ den Wert von „Strict“ auf „Permissive“ ändern.
Bedingung 3: Für bestehende Bilbliotheken Browser File Handling auf Permissive umändern
Obwohl man auf der Web-Applications-Stufe das Browser File Handling auf Permissive umgestellt hat, bleibt diese Einstellung auf Strict für die bereits in den Site Collections der Web-Application vorhandenen Dokumenten-Bibliotheken. Da diese Einstellung auf der Web-Benutzeroberfläche nicht geändert werden kann habe ich es mit einem PowerShell Script gemacht, welches über alle Sites einer Site Collection geht und dort über alle Listen vom Basis-Typen Dokumentenbibliothek:
$url = <http://myportal/sites/mysitecollection>
$site = Get-SPSite $url
foreach ($web in $site.AllWebs)
{
foreach ($list in $web.Lists)
{
if($list.BaseType -eq 1) # Only document libraries
{
if($list.browserfilehandling -eq "Strict") # if the profile is set to strict
{
$list.browserfilehandling = "Permissive";
$list.update();
Write-Host $site.url, $list.title, $list.browserfilehandling # print the list url/name for verification
}
}
}
}
Direktes Öffnen im Browser
Als letztes noch: Für einige Filetypen (z.B. PDF) gibt es ein Plug-In, welches es erlaubt, das Dokument direkt im Browser zu öffnen. Dies funktioniert aber ebenfalls nur, wenn der MIME-Type für einen sogenannten "InlineDownload" auf der SharePoint Web-Application registriert ist. Auch hier hilft PowerShell:
Add-PsSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
$webApp = Get-SPWebApplication http://intranet-vmm-test.viamat.com
If ($webApp.AllowedInlineDownloadedMimeTypes -notcontains "application/pdf")
{
Write-Host "Adding Pdf MIME Type..."
$webApp.AllowedInlineDownloadedMimeTypes.Add("application/pdf")
$webApp.Update()
Write-Host "Added and saved."
} Else {
Write-Host "Pdf MIME type is already added."
}
Quellen
Meine Leistung in diesem Blog-Beitrag besteht einzig aus der Aggregierung und Überprüfung von Informationen, welche andere freundlicherweise auf dem Netz bereit gesellt haben sowie der Überarbeitung der PowerShell-Scripts. Mein Dank geht deshalb an die Personen hinter folgenden Blog-Beiträgen: