Sonja Karlich: Button Design von File Upload Tag

Hallo

kenn von euch jemend eine Möglichkeit um den Button beim File Upload Tag <input type=file> zu verändern oder duch ein Image zu ersetzen. Mir würde es auch schon reichen wenn dies irgendwie über CSS machbar wäre.

lieben Dank
Sonja

  1. Moin

    kenn von euch jemend eine Möglichkeit um den Button beim File Upload Tag <input type=file> zu verändern oder duch ein Image zu ersetzen. Mir würde es auch schon reichen wenn dies irgendwie über CSS machbar wäre.

    Nein, seit das hier zuletzt diskutiert wurde sind meines Wissens nach keine Sicherheitslücken die das zuliessen aufgetaucht: http://forum.de.selfhtml.org/archiv/2002/2/4326/ und vor allem http://selfsuche.teamone.de/cgi-bin/such.pl?suchausdruck=input type file css&lang=on&feld=alle&index_4=on&index_5=on&index_6=on&index_7=on&index_8=on&hits=100

    --
    Henryk Plötz
    Grüße aus Berlin

    1. Holla

      kenn von euch jemend eine Möglichkeit um den Button beim File Upload Tag <input type=file> zu verändern oder duch ein Image zu ersetzen. Mir würde es auch schon reichen wenn dies irgendwie über CSS machbar wäre.

      Nein, seit das hier zuletzt diskutiert wurde sind meines Wissens nach keine Sicherheitslücken die das zuliessen aufgetaucht: http://forum.de.selfhtml.org/archiv/2002/2/4326/ und vor allem http://selfsuche.teamone.de/cgi-bin/such.pl?suchausdruck=input type file css&lang=on&feld=alle&index_4=on&index_5=on&index_6=on&index_7=on&index_8=on&hits=100

      Es geht halt doch irgendwie mit JavaScript. Allerdings sollte der User doch beobachten was da alles von seiner heimischen Festplatte übertragen wird. So hat er immer noch die Möglichkeit abzubrechen. Ausser der User wird durch irgendetwas abgelengt. Nen Popup z.B. !

      cu

  2. Hallo

    Tssss habe mir auch mal die Forumsuche angeschaut. Scheint ja nen Problem zu sein.

    Also es gibt da ne Möglichkeit !!! mit JavaScript geht viel....

    <script type="text/javascript">
    <!--
    function ausloesen() {
    document.hier.Datei.click();
    }

    function uebergabe() {
    document.da.Datei.value = document.hier.Datei.value;
    }
    //-->
    </script>

    <!-- Soll keiner sehen... deshalb am besten in einem anderen unsichtbaren Frame verstecken -->

    <FORM name="hier" action="" encType="">
    <INPUT type="file" size="50" name="Datei" onChange="uebergabe()">
    </FORM>

    <!-- Das sollen alle sehen !!! Also rein ins Formular -->

    <FORM action="" name="da">
    <INPUT size="50" name="Datei">
    <img src="durchsuchen.gif" onClick="ausloesen()">
    </FORM>

    <!-- Aber daran denken !!! Wenn man mit Frames arbeitet das Script noch zu erweitern.... was in welchem Frame. Und submit() muss natürlich document.da.submit() sein. -->

    Und mit CSS kann man den Rest auch noch schöner machen !

    Viel Spass!!!

    cu code2i

    PS: und zu http://forum.de.selfhtml.org/archiv/2002/2/4326/ Sicherheit ade .... la la .... dumdidum.

    1. Moin

      Also es gibt da ne Möglichkeit !!! mit JavaScript geht viel....

      Nein, du benutzt JScript.

      document.hier.Datei.click();

      Das ist keine JavaScript-Funktion und geht nur im IE größergleich 4 (und hoffentlich kleiner 6, aber ich wage zu bezweifeln dass jemand daran gedacht hat das wieder auszubauen).

      <!-- Aber daran denken

      Du hast vergessen zu erwähnen, dass ein derart verkrüppeltes Formular auf den meisten Browsern nicht mehr benutzbar ist.

      --
      Henryk Plötz
      Grüße aus Berlin

      1. Hallo Henryk.....

        Also es gibt da ne Möglichkeit !!! mit JavaScript geht viel....

        Nein, du benutzt JScript.

        Ich denke nich ??? http://selfhtml.teamone.de/javascript/objekte/elements.htm#click

        document.hier.Datei.click();

        Das ist keine JavaScript-Funktion und geht nur im IE größergleich 4 (und hoffentlich kleiner 6, aber ich wage zu bezweifeln dass jemand daran gedacht hat das wieder auszubauen).

        Also nach dem Link da oben verwende ich JavaScript 1.0 ! Und so dürfte das auch woanders funzen.

        <!-- Aber daran denken

        Du hast vergessen zu erwähnen, dass ein derart verkrüppeltes Formular auf den meisten Browsern nicht mehr benutzbar ist.

        Wieso verkrüppelt??? ich ändere doch gar nix an einem guten "normalen" Formular. Nur das ich die Eingaben da nicht direkt mache sondern sie mit JavaScript übergebe.

        Es könnten ja auch Default values sein !!!

        Tsussss ;-)

        1. Moin

          Ich denke nich ??? http://selfhtml.teamone.de/javascript/objekte/elements.htm#click

          OK, ich entschuldige mich. Ich nahm an, das click() würde von http://selfhtml.teamone.de/javascript/objekte/all.htm#click kommen.

          Wieso verkrüppelt??? ich ändere doch gar nix an einem guten "normalen" Formular. Nur das ich die Eingaben da nicht direkt mache sondern sie mit JavaScript übergebe.

          Aber du hast vorgeschlagen das eigentliche Formular zu verstecken. Und da dein Beispiel trotz angeblicher JavaScript-Konformität weder in meinem Mozilla noch in meinem NN 4 funktioniert (weder in der einen noch in der anderen Richtung, es werden auch keine JavaScript-Fehlermeldungen geschmissen), wäre es mit verstecktem Originalformular in mindestens 2 Browsern nicht benutzbar und damit verkrüppelt.

          Es könnten ja auch Default values sein !!!

          Ein input type=file hat kein Default. Ich nehme mal auch an dass die von Cheatah in http://forum.de.selfhtml.org/archiv/2002/2/4326/#m24343 angesprochene Unantastbarkeit des betreffenden value-Attributs von JavaScript aus für die Nichtfunktion deines Skriptes verantwortlich ist, obwohl ich ehrlich gesagt keine Lust verspüre das weiter zu erforschen.

          --
          Henryk Plötz
          Grüße aus Berlin

          1. Hallo

            Ich denke nich ??? http://selfhtml.teamone.de/javascript/objekte/elements.htm#click

            OK, ich entschuldige mich. Ich nahm an, das click() würde von http://selfhtml.teamone.de/javascript/objekte/all.htm#click kommen.

            Wieso verkrüppelt??? ich ändere doch gar nix an einem guten "normalen" Formular. Nur das ich die Eingaben da nicht direkt mache sondern sie mit JavaScript übergebe.

            Aber du hast vorgeschlagen das eigentliche Formular zu verstecken. Und da dein Beispiel trotz angeblicher JavaScript-Konformität weder in meinem Mozilla noch in meinem NN 4 funktioniert (weder in der einen noch in der anderen Richtung, es werden auch keine JavaScript-Fehlermeldungen geschmissen), wäre es mit verstecktem Originalformular in mindestens 2 Browsern nicht benutzbar und damit verkrüppelt.

            Sehr interessant ! Hmmm .. das aber keine Fehlermeldung kommt ist komisch.

            Es könnten ja auch Default values sein !!!

            Ein input type=file hat kein Default. Ich nehme mal auch an dass die von Cheatah in http://forum.de.selfhtml.org/archiv/2002/2/4326/#m24343 angesprochene Unantastbarkeit des betreffenden value-Attributs von JavaScript aus für die Nichtfunktion deines Skriptes verantwortlich ist, obwohl ich ehrlich gesagt keine Lust verspüre das weiter zu erforschen.

            Jo .... bis denne ! werde das bei Zeiten noch mal prüfen. Dank für deinen Test mit Mozi und NöNö.(lol) ;-)

            cu

            PS... ist ja fast schon nen Sicherheits BUG im MS.

            1. Hallo ich nochmal....

              habe das eben als uninteressant abgehandelt. Ist es aber vieleicht doch!

              Denn http://selfhtml.teamone.de/javascript/objekte/elements.htm#value!

              Das war meine Grundlage! Wenn value bei "Felder bei Datei-Upload" definitiv nicht funzt sondern nur bei IE wäre da ein kleiner Satz ganz hifreich ... in der Doku.

              Bleibt nur noch das ganze mal durchzutesten ! Hmmm wenn ich ne neue Festplatte habe .. werd ich mir auch mal NN wieder inst.

              Das ganze Beispiel hier mal von ausgenommen. Fehler bei übergabe zwischen Frames oder vieleicht reagiert onChange() nicht ganz so.
              --
              Nach HTML 4.0 und JavaScript 1.2 (Netscape) erlaubt in folgenden HTML-Tags:
              <input> <select> <textarea>
              --
              Hmm also onChange sollte eigentlich nicht das Problem sein.

              Ein alert(document.hier.Datei.value); an der richtigen Stelle... nachdem im Feld ein Dateiname steht ...wäre schon hilfreich !

              Wenn das nicht geht steht immerhin schon mal fest das ein "lesen" nicht funzt. Könnte man noch den schreibenden Zugriff probieren !!!

              Werde morgen mal weiter recherchieren und notfalls ein TestScript anfertigen.

              cu

            2. Hallo ... das ist ein parallel Posting um das Thema abzuschließen !!!

              FORM TYPE FILE ! und Value ...

              Beim Lesen und Ändern der Value gelten Sicherheitsregeln und der Zugriff wird nicht mehr gewährt.

              Leider gibt es hierbei eine Außnahme ... den Internet Explorer!(bis 6.0) Dieser erlaubt es nach wie vor... die Value zu ändern. Man könnte das auch als Sicherheits BUG bezeichnen.

              Das in diesem Thread behandelte Thema funktioniert definitiv nur mit IE.

              Grüsse code2i