Markup: HTML Dateityp prüfen

HiHo SelfHTML users!

Ich habe heute für meine Website ein Formular programmiert, und dabei bin ich auf ein kleines Problem gestossen.

Es geht darum das Formular durch den User auszufüllen und dann den inhalt in eine Datenbank zu speichern, soweit nichts spezielles.

Nun wollte ich den usern die Möglichkeit geben ein Bild zu uploaden.

Also habe ich ein Datei input gemacht:

<input type="file" name="xy" accept="image/jpeg" />

und im <form> tag enctype="multipart/form-data" festgelegt.

Jetzt aber meine Frage:

Wie kann ich denn den Datentyp überprüfen? Ich würde gerne über dem Formular ein div machen in dem die errors ausgegeben werden, was eigentlich auch kein Problem ist, ich verstehe nur nicht wie ich den datentypen aus diesem input feld abfragen kann.

Knn mir jemand einen Denkanstoss geben? =)

  1. Wie kann ich denn den Datentyp überprüfen?

    Mit HTML ist das unmöglich - da muss schon eine Programmiersprache ran. Du kannst das, indem du sie am Server (PHP, Java ...) oder lokal (z.B. Flash) auswertest.

    Mehr oder weniger zuverlässig ist das mit PHP  z.B. mittels finfo_file möglich.

    1. Ist vielleicht eine blöde Frage, aber könnte es auch so machbar sein:

      Ich überprüfe die Felder per Javascript function, und selektiere beim dateipfad des inputs die letzten 4 Zeichen.

      Dann überprüfe ich ob die 4 zeichen .jpg, jpeg oder .jpe sind. Wenn ja schicke ich per Ajax das ganze an eine php datei, welche dann den weiteren Part mit der Datenbank übernimmt.

      Eher gute oder blöde idee?^^

      1. Moin

        Eher gute oder blöde idee?^^

        Eher blöd, da man Dateiendungen auch umbennen kann ;) Das wäre in keinem Fall sicher.

        Gruß Bobby

        --
        -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
        ### Henry L. Mencken ###
        -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
        ## Viktor Frankl ###
        ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
      2. Hi,

        Ich überprüfe die Felder per Javascript function, und selektiere beim dateipfad des inputs die letzten 4 Zeichen.

        Eher gute oder blöde idee?^^

        Ganz blöde.

        MfG ChrisB

        --
        RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
      3. Eher gute oder blöde idee?^^

        Ich benenne "ganz_boeses_javascript.js" in "mein_profilbild.jpg" um und schon kann ich es hochladen - am Server gelandet, kann es sich jeder in meinem Profil ansehen.

        Es gibt/gab einige Browser, die doch da tatsächlich kein Bild anzeigen, sondern das JavaScript ausführen.

      4. Hi there,

        Eher gute oder blöde idee?^^

        Blöd ist ein hartes Wort, aber es beschreibt das zugrundeliegende Konzept ziemlich treffend.
        Um eine Datei als das, was es ist, erkennen zu können, schaust Du Dir am besten die ersten paar Bytes an, da kannst Du dann relativ sicher erkennen, ob es ein akzeptierter Dateityp ist, vor allem dann, wenn Du das ohnehin auf ganz wenige Formate einschränkst...