depp: Uploads: Endung prüfen

hi,
 würde gerne die uploads nur dann hochladen lassen, wenn der filetype pdf ist. (wie) geht  das mit php?
danke

  1. echo $begrüßung;

    würde gerne die uploads nur dann hochladen lassen, wenn der filetype pdf ist. (wie) geht  das mit php?

    Die Dateiendung ist nur ein Indiz auf ihren Inhalt, und kann beliebig gefälscht sein. Wenn du sicher gehen willst, solltest du eine Inhaltsprüfung vornehmen, was jedoch deutlich aufwändiger ist, auch wenn dir diese Arbeit von eingen Tools abgenommen wird: Fileinfo Functions, Mimetype Functions.

    Das was dir ein Client sendet lässt sich vorab nicht prüfen. <input> kennt zwar das Attribut accept, das kann der Client jedoch ignorieren. Auch die vom Client mitgesendete Typinformation, die sich in der $_FILES-Struktur finden lässt, muss nicht korrekt sein. So wie bei allen von Clients kommenden Daten ist eine Inhaltskontrolle erst in dem weiterverarbeitenden Script endgültig sinnvoll. Alle Prüfungen, die außerhalb deines Einflussbereiches stattfinden, können umgangen werden oder ein falsches Ergebnis liefern.

    Wenn du dich doch nur auf die Prüfung der Dateiendung beschränken möchtest, kannst du dir diese mit Stringfunktionen aus dem in $_FILES übergebenen Dateinamen extrahieren. Die Funktion strrchr() scheint sich dafür bestens zu eignen.

    echo "$verabschiedung $name";

    1. Moin!

      Wenn du dich doch nur auf die Prüfung der Dateiendung beschränken möchtest, kannst du dir diese mit Stringfunktionen aus dem in $_FILES übergebenen Dateinamen extrahieren. Die Funktion strrchr() scheint sich dafür bestens zu eignen.

      Ich würde bei der Bearbeitung von Dateinamen die dafür gedachten Funktionen verwenden. In diesem Fall bietet sich http://www.php.net/pathinfo|title=pathinfo() sehr an. Ist auch nur eine Stringfunktion, aber sie ist darauf zugeschnitten, Dateisystempfade zu zerlegen.

      - Sven Rautenberg

      --
      "Love your nation - respect the others."
      1. echo $begrüßung;

        Ich würde bei der Bearbeitung von Dateinamen die dafür gedachten Funktionen verwenden. In diesem Fall bietet sich pathinfo() sehr an.

        Ja, da stimme ich zu. Der Name pathinfo() ist etwas in meinen Augen nicht ganz glücklich gewählt, weswegen ich diese Funktion nie finde, wenn ich die Erweiterung eines Dateinamens extrahieren will. :-)

        echo "$verabschiedung $name";

  2. Die Endung an sich ist wenn du mich fragst ziemlich belanglos.

    Man suche auf php.net nach Funktionen zum PHP Dateien verarbeiten und probiere diese auf der gewünschten Datei aus.

    mfg
    Micha