Frank Stabenau: Was is daran falsch?

Hilfeee!

Was is daran falsch:

if($type != "image/gif" && $type != "image/jpeg") {
$err[] = "nur Bild-Dateien dürfen hochgeladen werden.";
}

ich bekomme immer die Fehlermeldung, wenn ich ein JPG hochladenmöchte... GIF geht...

Wisst ihr bitte Rat?

Frank

  1. Hi,

    Was is daran falsch:

    Du gehst davon aus, dass der Client den (aus Deiner Sicht!) korrekten MIME-Type übermittelt. Das ist wie 'ne EC-Karte ohne PIN-Abfrage.

    ich bekomme immer die Fehlermeldung, wenn ich ein JPG hochladenmöchte...

    Und wie lautet in dem Fall der MIME-Type?

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  2. Hilfeee!

    Was is daran falsch:

    if($type != "image/gif" && $type != "image/jpeg") {
    $err[] = "nur Bild-Dateien dürfen hochgeladen werden.";
    }

    ich bekomme immer die Fehlermeldung, wenn ich ein JPG hochladenmöchte... GIF geht...

    Wisst ihr bitte Rat?

    Frank

    Gib doch mal $type aus. Wahrscheinlich steht da "image/pjpeg". Das Problem hatte ich auch schon mal, da scheint es verschiedene Mime-Typen zu geben. Im Zweifelsfall helfen da ein paar Regular Expressions.

    1. Gib doch mal $type aus. Wahrscheinlich steht da "image/pjpeg". Das Problem hatte ich auch schon mal, da scheint es verschiedene Mime-Typen zu geben. Im Zweifelsfall helfen da ein paar Regular Expressions.

      Stimmt, er gibt tatsächlich image/pjpeg aus.... Was kann ich dagegen tun, bzx, was sind Regular Expressions?

      Frank

      1. Hi,

        Was kann ich dagegen tun,

        verlasse Dich *niemals* auf das, was Dir ein Client sagt. Der nächste schickt Dir 'ne .exe als image/gif.

        was sind Regular Expressions?

        Ein komplexes und mächtiges Thema für sich. Beschäftige Dich anhand der PHP-Doku damit.

        Cheatah

        --
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
  3. Hallo,

    Hilfeee!

    Waldfee kenn ich ja nun mittlerweile. Was ist eine Hilfeee?

    Was is daran falsch:

    Nichts!

    if($type != "image/gif" && $type != "image/jpeg") {
    $err[] = "nur Bild-Dateien dürfen hochgeladen werden.";
    }

    ich bekomme immer die Fehlermeldung, wenn ich ein JPG hochladenmöchte... GIF geht...

    Dann ist bei einem JPG die Bedingung $type != "image/gif" && $type != "image/jpeg" erfüllt. In der Variable $type steht also weder "image/gif" noch "image/jpeg".

    Wisst ihr bitte Rat?

    Nicht, wenn Du nicht sagst, woher die Variable $type ihren Wert bekommt.

    viele Grüße

    Axel

    1. Nicht, wenn Du nicht sagst, woher die Variable $type ihren Wert bekommt.

      $type = $HTTP_POST_FILES['file']['type'];

      1. Hallo,

        Nicht, wenn Du nicht sagst, woher die Variable $type ihren Wert bekommt.

        $type = $HTTP_POST_FILES['file']['type'];

        Bestimme den MIME-Tye des hochgeladenen Bildes mit PHP-Funktionen, speziell mit getimagesize() [PHP 3/4] sowie image_type_to_mime_type() [ab PHP 4.3.0].

        getimagesize() gibt ein Array zurueck:
        [0] width, [1] height,
        [2] type: 1=GIF, 2=JPEG, 3=PNG, 4=SWF, 5=PSD, 6=BMP, 7=TIFF (Intel), 8=TIFF (Motorola), ...
        [3] html: width="..." height="..."

        image_type_to_mime_type() ergibt den MIME-Type zum jeweiligen numerischen Wert zurueck

        Die Anwendung der genannten Funktionen erfolgt hier beim Auswerten von EXIF-Daten: http://webserver.et.fh-merseburg.de/person/meinike/PHP/exif/.

        MfG, Thomas