Mime-Typ einer Datei ermitteln (nur Endung?)
tobias
- php
Hallo allerseits
Gibt es in PHP eine Möglichkeit den Mime-Typ einer Datei (auf dem Server) zu ermitteln zum Beispiel: image/jpeg
oder muss ich mich auf die Endung verlassen?
Es ist doch so dass Betriebsysteme wie Linux nicht die Endung eines Dateinamens als Kriterium für das zu Verwendende Programm verwenden??
Besten Dank im voraus.
mfg Tobias
Hallo tobias,
Gibt es in PHP eine Möglichkeit den Mime-Typ einer Datei (auf dem Server) zu ermitteln zum Beispiel: image/jpeg
oder muss ich mich auf die Endung verlassen?
Allgemein gibt es < http://de3.php.net/mime_content_type>
Falls es sich ausschließlich um Bilder handelt, kannst Du auch < http://de3.php.net/getimagesize> - das gibt Dir dann eine Information zurück, um was für ein Bild es sich handelt - und mit einer eigenen Tabelle von MIME-Typs dazu beziehungsweise mit < http://de3.php.net/image_type_to_mime_type> (was es aber, genau wie mime_content_type erst ab PHP 4.3 gibt) in einen Mime-Typ umsetzen.
Es ist doch so dass Betriebsysteme wie Linux nicht die Endung eines Dateinamens als Kriterium für das zu Verwendende Programm verwenden??
Jain. Es hängt von den Programmen selbst ab. Viele Linux-Programme verwenden die Dateiendung.
Viele Grüße,
Christian
Herzlichen Dank,
hat mir geholfen.
Hello,
Zum Thema "mime_content_type()" gibt es hier einen längeren Thread von mir, da diese Funktion bei einigen Providern die Eigenschaft hat, plötzlich zu verschwinden ;-) Das hat wohl mit den geänderten Configure-Statements der unterschiedlichen PHP-Versionen zu tun.
Ich hatte auch eine "Erstatzfunktion" dafür gepostet, die aber nur funktioniert, wenn man Zugriff auf bestimmte Systemkommandos hat.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Besten Dank, ich habe die Ersatzfunktion:
if (!function_exists('mime_content_type')) {
function mime_content_type($f) {
$f = escapeshellarg($f);
return trim( file -bi $f
);
}
}
bereits gefunden, weil es bei mir eben nicht funktionert ;(
Hello,
Besten Dank, ich habe die Ersatzfunktion:
if (!function_exists('mime_content_type')) {
function mime_content_type($f) {
$f = escapeshellarg($f);
return trim(file -bi $f
);
}
}bereits gefunden, weil es bei mir eben nicht funktionert ;(
Diese Funktion ist etwas dürftig...
Allerdings würde ja bei passendem error_reporting() eine Fehlermeldung und ein Programmabbruch geschmissen werden, wenn das shell-Kommando nicht zugänglich ist.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom