PHP, Wie bekomme ich Mime Type - Mission Impossible?

8

Gibt es in PHP einen vernünftigen Weg, den MIME-Typ zu finden?

Ich habe die letzten paar Stunden ausgiebig gesucht und es scheint, als gäbe es drei Hauptwege, bei denen jeder Weg Probleme hat:

  1. mime_content_type () Dies ist veraltet, viele Male nicht installiert, und wenn installiert, wird manchmal die Datei mime.magic nicht gefunden.

  2. Datei_info War nicht auf den Hosts installiert, die ich ausprobiert habe, scheint nicht sehr gute Unterstützung zu haben. Ist eine Erweiterung (PECL).

  3. shell_exec (Datei -ib. $ Datei) Funktioniert nicht auf Windows-Servern. Ich habe es auf einem Linux-Server versucht und es gab mir "image / x-3ds2" für eine PHP-Datei. Was zum Teufel ist das !!!

Was ist ein guter, fast kugelsicherer Weg, um den MIME-Typ einer Datei zu erhalten?

    
mysqllearner 20.05.2010, 06:51
quelle

3 Antworten

2

Als Workaround können Sie die Erweiterung "mime.php" von Ссылка verwenden Es simuliert den mime_content_type () falls nicht verfügbar. Speziell für solche Fälle gemacht.

Sie können Ihre private mime.magic-Datei installieren und mit ini_set ("mime_magic.magicfile") erzwingen. Dies wird trotzdem empfohlen, damit Sie die gewünschten Einstellungen zur Verfügung haben.

    
mario 20.05.2010 12:23
quelle
0

Chris Jean hat eine Funktion namens get_file_mime_type entwickelt. versucht zuerst, die finfo_open -Methode zu verwenden, fällt dann zurück auf mime_content_type und fällt dann wieder auf ein einfaches extension => mime_type -Array zurück. Es funktioniert gut für mich, wenn die ersten beiden Optionen auf meinem Server nicht verfügbar waren. Beats muss die Funktion selbst schreiben!

    
Curtis Gibby 25.03.2013 19:01
quelle
0

Sie können die Magic Numbers verwenden, konsultieren Sie einige andere Dateisignaturlisten ( wie dieser hier ), und überprüfen Sie dann die Binärdaten für das erste Byte.

%Vor%

Dies ist eigentlich eine sehr einfache Ersetzungsfunktion für file_info (), die auf die gleiche Art und Weise funktioniert, aber auf einer weit ausgedehnten (und niedrigeren) Ebene.

Alternative verwendet eine bereits erstellte externe PHP-Klasse wie diese zum Beispiel ..

    
Obmerk Kronen 01.10.2013 02:41
quelle

Tags und Links