none
Dokumentenlink senden, damit Word geöffnet werden kann

    Frage

  • Hallo zusammen

    In einer Intranet-Anwendung gibt es für Dokumente eine Liste. Es gibt Dokumente als als Binary in der DB gespeichert sind und solche welche nur als Link(Pfad und Dokumentenname) gespeichert werden. Der Pfad ist z.B. z:\public\meinDokument.docx und liegt auf einer Dateifreigabe(bei allen Usern).

    Wenn jetzt jemand einen solchen Dokumentenlink anklickt, wird eine aspx-Seite aufgerufen und darin dann entschieden, ob der Binary-Inhalt gestreamt werden soll oder der Link übertragen werden und der Browser soll dann das Dokument nicht herunterladen sondern gleich ab z:\... öffnen, damit es danach auch gleich wieder gespeichert werden kann(und für die anderen aktuell bleibt). Der erste Fall mit dem Binary funktioniert, wie muss ich es aber machen, damit der Browser merkt, dass Word geöffnet werden soll?

    Direkt den ganzen Link z:\... im html als Link zu hinterlegen, geht nicht, das ist so vorgegeben.

    Gruss Christoph

    Montag, 14. Januar 2013 21:18

Antworten

  • Hallo Christoph,

    ich würde hierfür einen Handler (ASHX) nehmen und den dann die Datei ausliefern lassen.

    Ein Beispiel für sowas findest Du hier:

      http://www.aspnetzone.de/forums/permalink/219318/219329/ShowThread.aspx#219329

    Anhand der Angabe im "ContentType" Header weiß der Client, welches Programm er öffnen sollte (wenn der Client entsprechend eingestellt ist und überhaupt ein Programm existiert, das mit dem Dateityp etwas anfangen kann)

      Content-Disposition: attachment

    wird in der Regel dazu führen, dass der Client einen "Speichern unter..." Dialog anzeigt.

      Content-Disposition: inline

    wäre das, was Du brauchst, damit wird, wenn alles passt, das dazugehörige Programm direkt geöffnet.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community


    Montag, 14. Januar 2013 21:28
  • Hallo Christoph,

    das könnte man auch über den Handler machen. In dem Fall sendet man bspw.:

      Response.Redirect( "file:///X:/Ordner/Datei.docx" )

    Das geht aber auch über die Webform selbst, wenn das einfacher für dich ist.

    Allerdings wage ich zu bezweifeln, dass das ohne Anpassung der Sicherheitseinstellungen im Browser funktioniert.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    • Als Antwort markiert chmav Montag, 21. Januar 2013 10:10
    Montag, 21. Januar 2013 09:56

Alle Antworten