SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Worddokument oder PDF per Redirect öffnen

Geprüfte Antwort Dieser Beitrag hat 2 Antworten

Ohne Rang
81 Beiträge
Dirk Weinert erstellt 26 März 2014 14:09
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hi,

in einer Doc-Lib habe ich eine HTML-Datei liegen (auch schon mit .aspx probiert).

Diese HTML-Datei enthält folgenden Code:



<meta http-equiv="refresh" content="5;http://.../Datei.docx">
<a href="http://...Datei.docx">Try this</a>

Sobald man in der Library auf die HTML-Datei klickt, soll per refresh ein Worddoc geöffnet werden.
(Hier testweise mit 5 Sekunden Wartezeit).
Der Refresh klappt nur, wenn ich eine andere HTML-Seite aufrufe.
Er klappt nicht, wenn ich eine Word- oder PDF-Datei öffnen möchte.

Zunächst dachte ich, dass der Link nicht korrekt ist, deswegen noch das "Try this" im Code.
Dort verlinke ich ebenfalls auf das Worddokument.
Klicke ich den Link (natürlich manuell) an, dann fragt mich der IE, ob ich die Datei öffnen möchte
und es funktioniert.

Somit also die Frage, ob es überhaupt möglich ist, mittels der gezeigten Variante das Dokument
zu öffnen.

Gibt es andere Möglichkeiten?

Danke und Gruß
Dirk

 

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 26 März 2014 15:40
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ob es mit einem <meta refresh> geht, kann ich Dir nicht sagen (offenbar nicht), aber hast Du es schonmal mit JavaScript versucht?

window.location = http://.../word.docx;

Und das Ganze vielleicht noch in ein setTimeout(5000) packen.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
81 Beiträge
Dirk Weinert Als Antwort am 30 März 2014 21:16
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Andi,

mit JS habe ich auch verschiedene Optionen durchprobiert.
Leider ohne Erfolg.

Mittlerweile habe ich es mit eingebettetem C#-Code gelöst. ;-)

Für den Fall, dass es auch von anderen Usern benötigt wird....
hier der Code und ein paar Hinweise:


<%@ Page Language="C#" %>
<script runat="server">
protected override void OnLoad(EventArgs e)
{
Response.Redirect(
http://Adresse/Bibliothek/Dokument.docx);
base.OnLoad(e);
}
</script>

Mit diesem Code wird eine 301 Weiterleitung erzeugt. Es handelt sich somit um eine permanente Weiterleitung.
Für eine Suchmaschine heißt das, dass die alte gespeicherte Adresse gegen die neue ausgetauscht werden soll.

Im Gegensatz dazu ist die 302 nur eine temporäre Weiterleitung und bedeutet für eine Suchmaschine, dass im
Such-Katalog die alte Adresse nicht gegen die neue ausgetauscht werden soll.

Die Datei mit dem Code z. B. als redirect.aspx in der Library Pages speichern.

Damit die Datei den Code auch ausführen kann, muss die Datei web.config der entsprechenden WebApplication
auf dem SharePoint bearbeitet werden.

Die Datei liegt unter:

C:\inetpub\wwwroot\wss\VirtualDirectories\NameDerWebApplication\web.config

Im Abschnitt PageParserPaths einen Abschnitt namens PageParserPath hinzufügen:


<PageParserPaths>
<PageParserPath VirtualPath="/Pages/redirect.aspx" CompilationMode="Always" AllowServerSideScript="true" />
</PageParserPaths>


Damit ist die Code-Ausführung für die Datei redirect.aspx in der Library Pages erlaubt.

Die damit verbundenen Sicherheitsrisiken sind allerdings ein anderes Thema. :-)

Ganz wichtig:
Das aufzurufende Dokument (Dokument.docx) darf keine Leerzeichen oder Sonderzeichen im Dateinamen enthalten. Es darf aber in Unterverzeichnissen liegen. Manchmal werden ja Ordner in Bibliotheken angelegt. Wie gesagt, dort
darf das Dokument ruhig liegen.

Die ASPX-Seite, die im Code den Link aufruft, darf aber NICHT in einem Unterverzeichnis bzw. angelegten Ordner
liegen. Vom Prinzip her, funktioniert das zwar, aber die Datei kann dann nicht mehr gezielt in der web.config
freigegeben werden (habe ich zumindest nicht hinbekommen).
Stattdessen muss der gesamte Ordner (oder alle Subfolder) freigegeben werden.

Damit ist für jede Datei (/*) die Ausführung von Code erlaubt und das muss ja nun wirklich
nicht sein. ;-)

Gruß
DW