Shredder: Die verschiedenen Internet-Bildtypen

Hallo!

Ich möchte mit einem Formular Bilder uploaden. Es sollen aber nur GIF, JPEG und PNG (also die gängigsten Formate im Internet) erlaubt sein. Um den Upload anderer Dateiformate zu verhindern, vergleiche ich den Dateityp der upgeloadeten Datei mit denen, die erlaubt sind.

Ich weiß jetzt nur nicht genau wie die Bezeichnungen für die verschiedenen Bildtypen genau lauten und ob es da meherere unterschiedliche für eine Bildart gibt. Für JPEG habe ich nämlich "image/pjpeg" und für PNG "image/x-png" zurückbekommen und das klingt irgendwie so, als ob es da noch andere Arten gibt (nur image/png?)

Vielen Dank für eure Hilfe!

  1. hi

    Ich weiß jetzt nur nicht genau wie die Bezeichnungen für die verschiedenen Bildtypen genau lauten und ob es da meherere unterschiedliche für eine Bildart gibt. Für JPEG habe ich nämlich "image/pjpeg" und für PNG "image/x-png" zurückbekommen und das klingt irgendwie so, als ob es da noch andere Arten gibt (nur image/png?)

    ...der MSIE ist da etwas verbuggt und gendet gerne mal irgendwelchen Quatsch als Mimetype.... Die Dinger heißen eigentlich image/jpeg und image/png, wie es dann auch jeder andere Browser sagt.

    Grüße aus Bleckede

    Kai

    1. Am besten ich erlaube also folgende Bildtypen:

      image/gif
      image/jpeg
      image/pjpeg
      (image/jpg?)
      image/x-png
      image/png

      Dann sollte es ziemlich hinhauen, oder?

      1. hi

        image/gif
        image/jpeg
        image/pjpeg
        image/x-png
        image/png

        jo, sofern sich der MSIE nicht bei .gif auch noch was nettes ausgedacht hat...

        Grüße aus Bleckede

        Kai

        1. Danke!
          (Warum darf man hier nicht einfach nur "Danke" schreiben?)

          1. Hi shredder,

            wie ich vermute, hat das geklappt von heute Nachmittag.

            Ich will Dich aber noch auf einen Irrtum aufmerksam machen. Der MIME-Type einer Datei ist durchaus fälschbar. Den solltest Du also nicht abfragen. Ist auch ganz unerheblich.

            Wichtiger sind die Endungen, die als letztes daranhängen.

            Wenn Dir einer ein Bild mit dm Namen regenbogen.gif.php auf den Server lädt, und das in der Document Root landet, dann hast Du ein Loch im System. Vorausgestzt natürlich, da ist kein Bild drin, sondern ein Script. Aber wieso sollte jemand einem Bild die Endung php geben, wenn er nix damit vor hat???

            Du musst also nach dem Upload ins Tempverzeichnis prüfen, was in $datei_name drinsteht.
               ^
               |
               +--- kommt aus dem Namen des <input type="file" name="datei" ...

            aber das hatten wir ja schon.

            Vergiss also den Mime-Type und prüf den Namen. Vergewisser Dich, dass Du wirklich nur zulässige Namen für Bilder durchgehen lässt und dass sie am besten NICHT in der Document-Root abgelegt werden. Dann kann man sie allerdings nicht einfach mit <img src="..." zur Anzeige bringen.

            Hat alles seine zwei Seiten.

            Gruß

            Tom