lemmingdotname: Feststellen, ob eine Datei ein Bild ist.

Hallo,

ich habe eine Internetseite wo Benutzer Benutzerbildchen hoch laden können. Das müssen ico, bmp, gif, jpg und png sein.

Wie kann ich denn Testen, dass der Benutzer auch tatsächlich ein Bild hoch geladen hat, dass den o. g. Formaten entspricht?

Danke für die Antwort.

lemming

  1. Ich grüsse den Cosmos,

    Wie kann ich denn Testen, dass der Benutzer auch tatsächlich ein Bild hoch geladen hat, dass den o. g. Formaten entspricht?

    Entweder du prüfst die Dateiendung. Wobei ein böser Mensch den Dateinamen auch ändern kann. Der Vorteil, du kannst das vor dem Upload per JavaScript prüfen.
    Alternativ untersuchst du die Datei nach dem Upload. Am Anfang der Datei kann man auslesen, ob es eine Bilddatei ist. Welche Stelle du genau auslesen musst, kannst du in den Spezifikationen der Dateiformate nachlesen.

    Möge das "Self" mit euch sein

    --
    Neulich dachte ich mir, einmal S/M ausprobieren wäre eine tolle Erfahrung. Also hab ich Windows gebootet ...
  2. Ciao,
    Suche mal nach MIME TYPEN, mit dieser Hilfe, kannst du ganz einfach all dies abfragen :)

    Gruess

  3. Hallo Lemming

    Wie kann ich denn Testen, dass der Benutzer auch tatsächlich ein Bild hoch geladen hat, dass den o. g. Formaten entspricht?

    überprüfe den MIME-Type der hochgeladenen Datei. Die erlaubten MIME-Types kannst Du sehr einfach in ein Array packen und dieses in einer Überprüfungsroutine durchlaufen.

    Grüsse
    tagworx

    1. überprüfe den MIME-Type der hochgeladenen Datei. Die erlaubten MIME-Types kannst Du sehr einfach in ein Array packen und dieses in einer Überprüfungsroutine durchlaufen.

      Hallo tagworx,

      ich hab's jetzt mal mit checken des mime-types getestet und es kommen ganz unterschiedliche Ergebnisse dabei heraus.

      application/octet-stream
      image/x-icon
      und sogar
      text/plain

      Gäbe es noch eine andere Möglichkeit? *achselzuck*

      1. Hallo,

        Gäbe es noch eine andere Möglichkeit? *achselzuck*

        Ja, aber dies ist die sicherste und beste Art dies zu tun.
        Und du bist ja auf bestem Wege...
        image/x-icon hast du zurückbekommen.
        Jetzt überprüft du einfach ob "image/" als MIME TYPE drin ist, wenn ja erlaube es dem benutzer, wenn nein, error message.

        Grüsse

        1. image/x-icon hast du zurückbekommen.
          Jetzt überprüft du einfach ob "image/" als MIME TYPE drin ist, wenn ja erlaube es dem benutzer, wenn nein, error message.

          Aber alle drei waren Bilder. Icon, Jpg und png. :/

  4. echo $begrüßung;

    Wie kann ich denn Testen, dass der Benutzer auch tatsächlich ein Bild hoch geladen hat, dass den o. g. Formaten entspricht?

    Am sichersten ist es, wenn du versuchst, die Bildgröße mit getimagesize() zu ermitteln. Wenn du ein FALSE statt eines Arrays mit Größeninformationen zurückbekommst ist es kein Bild. Diese Funktion gibt dann auch eine Warnung aus, deren Ausgabe du mit @ unterdrücken kannst.

    echo "$verabschiedung $name";