Fragensteller
Link erstellen auf lokale Datei

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 malWolfgang
- Typ geändert Stefan FalzModerator Dienstag, 11. März 2014 20:23 Thread ohne bestätigte Lösung abgeschlossen
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 -
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
-
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 -
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 -
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.
-
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