Tom: Mime-Typ herausfinden

Beitrag lesen

Hello,

Ich will nun für ein kleines Programm nur PDF-Dokumente erlauben, mich aber ungerne auf die Dateiendung der Nutzereingabe verlassen, ebenswo wenig auf den nutzergeseteuerten $_FILES-Array. Was bleibt mir da übrig?

Solange Du noch http://de2.php.net/manual/en/function.mime-content-type.php zur Verfügung hast, kannst Du das benutzen. Die velinkte Klasse mit "fileinfo" ist aber nicht zu empfehlen!

Sonst steht leider nur das Programm 'file', das auf Linux-Hosts im Zusammenhang mit dem "Magic Mime File" noch die besten Resultate liefert, zur verfügung. Für Windows gibt es das auch, ist mir aber leider beim letzten Hardware-Chrash verloren gegangen... Google könnte helfen.

Wir haben die Funktion mal nachgebaut...

#---------------------------------------------------------
if(!function_exists('mime_content_type'))
{
  function mime_content_type($filename)
  {
    $filepath = realpath($filename);
    $_mime = array();

// Spaces werden maskiert, weil sie sonst trennen
    $filepath = str_replace(" ","\ ",$filepath);

exec ("file -bi $filepath", $_mime, $error);

if (($error) or (count($_mime) != 1)) return false;

if (strpos($_mime[0], "can't stat") !== false)
    {
      $mime = "Typ unbekannt";
    }
    elseif (strpos($_mime[0], "can't read") !== false)
    {
      $mime = "Datei nicht lesbar";
    }
    elseif (strpos($_mime[0], "can't ") !== false)
    {
      $mime = "unbekannter Fehler";
    }
    else
    {
      $mime = trim($_mime[0]);
    }

return $mime;
  }
}
#-------------------------------------------------------

Du brauchst aber

  • file
  • magic_mime
  • exec

dazu. Und die Pfade müssen passen.

Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)