tttom: input type=file

zu diesem thema hab ich 2 fragen:
wie kann ich den durchsuchenbutton durch einen von mir definierten ersetzen?
und wie kann ich von vornherein ausschliessen, dass andere als von mir erlaubte dateitypen (hier jpg und gif) ausgewählt werden können?

bitte helft!

der tttom

  1. hi?

    zu diesem thema hab ich 2 fragen:
    wie kann ich den durchsuchenbutton durch einen von mir definierten ersetzen?

    geht ned!

    und wie kann ich von vornherein ausschliessen, dass andere als von mir erlaubte dateitypen (hier jpg und gif) ausgewählt werden können?

    Wenn Sie nur bestimmte Dateitypen zulassen wollen, können Sie mit der Angabe accept= die erlaubten Dateitypen eingrenzen (accept = akzeptieren). Hinter dem Istgleichzeichen können Sie einen  Mime-Typ angeben. Dabei ist auch das Wildcardzeichen "*" bei Subtypen erlaubt. Im obigen Beispiel werden alle Textdateien akzeptiert. Dazu gehören reine Textdateien (*.txt), aber auch HTML-Dateien (*.html,*.htm).

    aus selfHTML

    bitte helft!

    hilf dir selbst!

    der tttom

    cu

    1. Hi,

      wie kann ich den durchsuchenbutton durch einen von mir definierten ersetzen?
      geht ned!

      stimmt. Das ist übrigens gut so; denn bei dem bekannten "Browse..."-Button bin ich mir der Tatsache bewußt, daß ich meine Dateien quer durch's Netz zu jagen im Begriff bin.

      und wie kann ich von vornherein ausschliessen, dass andere als von mir erlaubte dateitypen (hier jpg und gif) ausgewählt werden können?

      Geht auch ned.

      Wenn Sie nur bestimmte Dateitypen zulassen wollen, können Sie [...]

      ...den Rest des Textes vergessen, weil kein Browser sowas unterstützt. Und selbst wenn, wäre es leicht zu umgehen, also auch nur eine marginale Hilfe.

      Cheatah

      1. Wenn Sie nur bestimmte Dateitypen zulassen wollen, können Sie [...]

        ...den Rest des Textes vergessen, weil kein Browser sowas unterstützt. Und selbst wenn, wäre es leicht zu umgehen, also auch nur eine marginale Hilfe.

        doch das geht
        aber etwas komplizierter
        Du kannst das mit PHP bewerkstelligen:

        angenommen dein 'input type=file' heisst bild und du willst nur jpg und gif darstellen, geht das wie folgt:

        if(eregi("(jpg|gif)$",$bild_name))
        {
           führe aus....
        }
        else
        {
           führe halt nicht aus ;)...
        }

        Ein sehr schönes Beispiel dazu findest du auf:

        http://www.php3-forum.de/beispiele/anwendung_upload.htm

        viel spass ;)

        Quicks

        1. Hi,

          doch das geht

          nicht clientseitig.

          Dein Beispielcode hat übrigens den Nachteil, daß er sich auf etwas bedeutungsfreies stützt, nämlich das Ende des Dateinamens. Da vom Browser aus üblicherweise kein Content-Type mitgeschickt wird, kannst Du nur durch (inhaltliche!) Analyse der Daten sicherstellen, daß Dir niemand den SirCam-Virus als "sircam.jpg" unterjubelt.

          Cheatah

          1. Hi,

            doch das geht

            nicht clientseitig.

            Dein Beispielcode hat übrigens den Nachteil, daß er sich auf etwas bedeutungsfreies stützt, nämlich das Ende des Dateinamens. Da vom Browser aus üblicherweise kein Content-Type mitgeschickt wird, kannst Du nur durch (inhaltliche!) Analyse der Daten sicherstellen, daß Dir niemand den SirCam-Virus als "sircam.jpg" unterjubelt.

            Cheatah

            ja schon
            aber ging ja darum dass nur jpg ausgewählt werden können. gleich auf viren prüfen geht bestimmt auch, aber ist ja hier nicht verlangt ;))

            du hast natürlich recht, man kann clientseitig auch andere dateien auswählen, aber du kannst ja wenn auf senden geklickt ein php script aufrufen lassen, das in einer if abfrage testet ob die datei von einem der erlaubten typen ist. wenn ja, meta-refresh zur nächsten seite, wenn nein meta-link zur selben seite wieder.

            Quicks

            1. Hi,

              aber ging ja darum dass nur jpg ausgewählt werden können.

              richtig - was ich sagen wollte ist, daß die Dateiendung eben nicht ausreicht.

              aber du kannst ja wenn auf senden geklickt ein php script aufrufen lassen, das in einer if abfrage testet ob die datei von einem der erlaubten typen ist.

              Genau hier liegt das Problem: ein Dateityp wird nicht übermittelt. Man hat nur den (bedeutungsfreien) Namen und den Inhalt.

              Cheatah

              1. Genau hier liegt das Problem: ein Dateityp wird nicht übermittelt. Man hat nur den (bedeutungsfreien) Namen und den Inhalt.

                jo
                aber kannst nix machen :o(

                1. Hi Ihr

                  Genau hier liegt das Problem: ein Dateityp wird nicht übermittelt. Man hat nur den (bedeutungsfreien) Namen und den Inhalt.

                  jo
                  aber kannst nix machen :o(

                  doch geht in PHP, zumindest für die Grafikformate GIF-, JPG-, PNG oder SWF-Datei.

                  PHP kennt die wunderschöne Funktion getimagesize() http://php-center.de/de-html-manual/function.getimagesize.html

                  Mittels dieser Funktion kann man testen, ob ein Bild geliefert wurde oder nicht.

                  <form enctype="multipart/form-data" action="testimage.php3" method="post" target="">
                   <input type="file" name="Bildk">
                  <input type="submit" name="senden">
                   </form>
                   <?
                    if (isset($Bildk) && $Bildk!="none") {
                    $Bildk=str_replace("\\","\",$Bildk); //Fehlerbehandlung unter windows
                   $istBild= getimagesize($Bildk);
                   if (!$istBild) echo "falsches Format";
                    }
                   ?>

                  Viele Grüße

                  Antje