none
Link erstellen auf lokale Datei RRS feed

  • Allgemeine Diskussion

  • Hallo zusammen,

    eine WebApplikation soll - abhängig vom User-Input - einen Link anbieten, mit dem eine lokale Datei geöffnet werden kann.
    meinen Fragen hierzu:
    - Wie erstelle ich die URL (mit "file:" + 3 Slashes), 
    - Wie maskiere ich Umlaute, Leerzeichen?
    - Kann ich damit dann auch z.B. eine Excel-Datei öffnen?


    Danke schon mal

    Wolfgang

     

    • Typ geändert Stefan FalzModerator Dienstag, 11. März 2014 20:23 Thread ohne bestätigte Lösung abgeschlossen
    Mittwoch, 26. Oktober 2011 11:53

Alle Antworten

  • Hallo Wolfgang,

    es ist in der Regel keine gute Idee, das zu machen, da lokale Links von vielen Browsern nur dann verarbeitet werden, wenn die Seite auch lokal aufgerufen wurde. Wenn Du also bspw. X:\Ordner\Datei.html im Browser aufrufst, wird auch ein Link file:///x:/ordner/xyz.xls funktionieren. Wenn Du aber per http://server/datei.html den Link anklickst, wird es wahrscheinlich aus Sicherheitsgründen nicht gehen.

    Umlaute, Leerzeichen, ... maskiert man wie in einem normalen URL auch per Server.UrlEncode( ... )

    Ob Du damit auch eine Exceldatei öffnen kannst, hängt davon ab, ob Excel überhaupt auf dem Client installiert ist.

     


    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
    Mittwoch, 26. Oktober 2011 17:52
    Moderator
  • Hallo Stefan,

    jetzt ich bin schon weiter gekommen.
    ich übergebe den Link file:///x:/ord ner/äpfel.xls.

    Das Leerzeichen stört nicht, leider wird der Umlaut "ä" umgewandelt in "ä".
    Wenn ich in der URL wieder "ä" einsetze, lässt sich die Exceldatei öffnen.

    Wie könnte ich nun die Umwandlung des "ä" verhindern?

    Gruß
    Wolfgang

    Donnerstag, 27. Oktober 2011 08:06
  • Hallo Wolfgang,

    lass den Pfad über UrlPathEncode( ... ) laufen, dann werden Sonderzeichen so umgesetzt, dass der Browser die auch versteht.

     


    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
    Donnerstag, 27. Oktober 2011 11:39
    Moderator
  • Hallo Stefan,

    bis auf den Umlaut klappt das schon:

    file:///x:/ord ner/äpfel.xls mit UrlPathEndcode(..) ergibt: 
    file:///x:/ord%20ner/%c3%a4pfel.xls, aber beim Klicken auf den Link steht in der URL-Leiste des IE9:

    file:///x:/ord ner/äpfel.xls

    das heißt: Leerzeichen-Konvertierung klappt, beim Umlaut stimmt etwas nicht.

    Gruß
    Wolfgang

     

     

     

    Donnerstag, 27. Oktober 2011 12:13
  • Hallo Wolfgang,

    gib bei deiner Seite die zu verwendende Codierung an (z.B. UTF8 oder ISO-8859-1 oder ISO-8859-15) Damit solltest du etwas herumspielen und schauen, welche Codierung der Browser akzeptiert. Ist generell über die web.config zu konfigurieren. Denn so wie es ausschaut ist es ein Problem im Browser der nicht erkennt, welche in welcher Codierung gesendet wurde und somit gerade Umlaute falsch darstellt.

    Mittwoch, 21. Dezember 2011 22:53
  • Danke für die späte Antwort,
    ich werde das nach Weihnachten mal ausprobieren, da ich bisher noch keine Lösung hatte.
    Ich vermerke es hier, wenn's klappt.

    Wolfgang

    Donnerstag, 22. Dezember 2011 14:44
  • Hallo asymetrixs,

    folgende Tests habe ich zu deinen Vorschlägen durchgeführt:
    Eintrag in die web.config:
    <globalization responseEncoding="utf-8"/> ;außerdem: ISO-8859-1 bzw. ISO-8859-15
    Bei allen 3 Vorschlägen wird jedoch der Umlaut nicht richtig konvertiert.

    Außerdem musste ich für die o.g. Funktionsweise den folgenden Tag  bereitstellen: <pages enableEventValidation="false">

    Grüße
    Wolfgang

     

     

    Montag, 2. Januar 2012 09:59