Janosch: PHP Upload: file-typ herausfinden...

hallo team,
ich habe ein upload mit php geschrieben. es macht nichts anderes als ein jpg auf den server hochzuladen. Klappt soweit prima. Jetzt habe ich aber folgendes problem: lädt der user statt einem bild ein pdf hoch will ich, das es in einem anderen ordner landet (z.B. download-ordner). ich muss also unterscheiden. nur wie mach ich das?

so siehts bisher aus:
if (is_uploaded_file($HTTP_POST_FILES['PIC']['tmp_name'][$i]))
   { ...
gibts sowas wie
if (is_uploaded_file (is pdf)... do whatever...?

gruesse janosch

  1. Moin!

    gibts sowas wie
    if (is_uploaded_file (is pdf)... do whatever...?

    Du hast genau zwei Möglichkeiten...

    1. Prüfe die Dateiendung
      oder
    2. Schau mal mit einem Texteditor Deiner Wahl in die Dateien, finde den relevanten Unterschied:

    Ein PDF- Dokument beginnt mit: %PDF und endet mit: %%EOF
    Ein JPG- Dokument beginnt mit: ÿØÿá

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix®

    --
    Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
  2. Hi!

    so siehts bisher aus:
    if (is_uploaded_file($HTTP_POST_FILES['PIC']['tmp_name'][$i]))
       { ...
    gibts sowas wie
    if (is_uploaded_file (is pdf)... do whatever...?

    So direkt nicht, aber es kommt drauf an was Du genau willst. Bilder zu erkennen ist nicht das Problem, dabei hilft Dir die Funktion getimagesize(), andere Datentypen ist schon schwieriger.
    Erstmal, traue keiner Endung oder sonstigen Daten die vom Client manipulierbar sind.
    Wenn Du eine Linux-Shell zur Verfügung hast könnte Dir das Tool "file" helfen, dieses gibt den Mime-Type zurück.

    Grüße
    Andreas