Horst Reinelt: Browserabhängiges Verhalten bei "file"-Formularfeld

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

  1. 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

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. 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