Browserabhängiges Verhalten bei "file"-Formularfeld
Horst Reinelt
- html
0 Cheatah
Hallo zusammen,
ich hatte schon seit längerem ein "file"-Formularfeld im Einsatz, dass ich zum Angeben eine File-Pfades genutzt habe. Jetzt fiel mir aber auf, dass diese Funktion browserabhängig zu sein scheint.
Wenn in der sendenden Seite ...
<form name="f" action="/cgi-bin/test/index.cgi" method="post">
<input name="datei" type="file" size=50 maxlength=100000 accept="text/*">
</form>
die Datei F:\test\test.txt ausgewählt wurde,
steht im Query-String dann ...
bei z. B. NN4.7 und IE6.0:
datei=F%3A%5Ctest%5Ctest.txt
bei z. B. Netscape 7, Mozilla Firefox:
datei=test.txt
Das heißt, abhängig vom Browser wird der Pfad (bei post oder get gleichermaßen) mit übertragen oder auch nicht.
Könnt ihr mir dieses Verhalten bestätigen? Und - gibts für Netscape>4.x, Mozilla Firefox und ähnliche eine andere Möglichkeit, den Pfad mit zu übertragen?
Vielen Dank!
Horst
Hi,
[...] F:\test\test.txt [...]
datei=F%3A%5Ctest%5Ctest.txt
das ist lediglich eine URL-Kodierung. Dein empfangender Mechanismus hat es offenbar versäumt, dies zu dekodieren.
Könnt ihr mir dieses Verhalten bestätigen?
Ja.
Und - gibts für Netscape>4.x, Mozilla Firefox und ähnliche eine andere Möglichkeit, den Pfad mit zu übertragen?
<input type="text">
Die Nichtübertragung des Pfades hat Sicherheitserwägungen: Die Verzeichnisstruktur des Clientrechners geht Dich schlicht und ergreifend nichts an.
Cheatah
das ist lediglich eine URL-Kodierung. Dein empfangender Mechanismus hat es offenbar versäumt, dies zu dekodieren.
Ne, das war schon so erwünscht. Das erste Beispiel ist ja auch OK.
Die Nichtübertragung des Pfades hat Sicherheitserwägungen: Die Verzeichnisstruktur des Clientrechners geht Dich schlicht und ergreifend nichts an.
Das heißt dann, der Pfad wird (bei sicheren Browsern) nur vom Client-Browser ausgewertet und das File bereits zum Senden bereitgestellt.
Na gut, zur Not schreibe ich vor dem Senden den Wert des file-Feldes in ein hidden-Formularelement um (mir gehts ja nur um die Browse-Funktion des Elementes).
Ist zwar nicht sauber, aber sicherheitstechnisch unbedenklich, da Client und Server bei meiner Anwendung ausschließlich auf einem Rechner lokal laufen.
Danke und tschüss
Horst