Ich hatte letztens eine Anforderung während eines SharePoint-Projekts einen WebPart zu bauen und Dokumente aus einer Liste zu verlinken.
An sich keine schwierige Aufgabe. Danach kam die nächste Anforderung: Die Datei soll sich wenn möglich bitte in den Office Web Apps öffnen.
Momentan wurden die Dateien als Download angeboten.
Ich wusste zuerst nicht wie ich das machen soll. Vor allem in client-seitigem Code. Ich habe ja einfach nur die Dateien verlinkt.
Zum Glück hat mir mein Kollege Helge de Vries einen super Tipp gegeben:
Mach’s wie SharePoint und hänge ?web=1 an die URL!
Und siehe da, es funktioniert einwandfrei.
Der Grund dafür ist, dass die Erweiterung ?web=1 die Anfrage ändert und SharePoint auffordert die Datei im Browser zu öffnen.
Gibt es für die Datei einen Handler, wie z.B. die Office Web Apps für docx-Dateien, wird das Word Dokument in den Office Web Apps geöffnet.
Für Dateien die vom Browser nicht geöffnet werden können, wird weiterhin ein Download angeboten. Genauso verhält sich eine Datei auch, wenn kein Handler vorhanden ist. Beim Klick auf ein Word-Dokument ohne installierte Office Web Apps wird auch ein Download angeboten.
Bei einfachen Dateien, die vom Browser interpretiert werden können sollte man bei dieser Methode aber aufpassen.
txt-Dateien z.B. werden einfach im Browser angezeigt.
Das System funktioniert natürlich auch anders herum. Hat man Dateien die nicht im Browser oder Office Web Apps geöffnet werden sollen kann man mit dem Parameter ?web=0 dagegen vorgehen.