Hallo,
ich ermittle für hochgeladene Dateien den Typ.
Dafür habe ich in einer Klasse die folgende Methode.
Ich möchte aber auch gerne Text- (HTML, PHP, CSS, JS etc.) und MS Word-Dateien erkennen. Hat jemand eine Idee, an welchen Merkmalen ich das relativ sicher erkennen kann? Nicht nur an der Dateiendung.
Poscht
ich ermittle für hochgeladene Dateien den Typ.
Dafür habe ich in einer Klasse die folgende Methode.
Ich möchte aber auch gerne Text- (HTML, PHP, CSS, JS etc.) und MS Word-Dateien erkennen. Hat jemand eine Idee, an welchen Merkmalen ich das relativ sicher erkennen kann? Nicht nur an der Dateiendung.
PHP-Code:
private function _getFileFormat($strFileContent)
{
if(isset($strFileContent) && $strFileContent<>"")
{
$this->_strFileHeader=substr($strFileContent,0,10);
// PDF
if(substr($this->_strFileHeader,0,4)=="%PDF")
{
return "PDF";
}
// TIF
elseif(
strtoupper(bin2hex(substr($this->_strFileHeader,0,2)))=="4949" ||
strtoupper(bin2hex(substr($this->_strFileHeader,0,2)))=="4D4D")
{
return "TIF";
}
// JPG
elseif(
strtoupper(bin2hex(substr($this->_strFileHeader,0,4)))=="FFD8FFE0" &&
strtoupper(bin2hex(substr($this->_strFileHeader,6,4)))=="4A464946")
{
return "JPG";
}
// PNG
elseif(
strtoupper(bin2hex(substr($this->_strFileHeader,0,8)))=="89504E470D0A1A0A")
{
return "PNG";
}
// GIF
elseif(
substr($this->_strFileHeader,0,6)=="GIF89a" ||
substr($this->_strFileHeader,0,6)=="GIF87a")
{
return "GIF";
}
else
{
return "???";
}
}
else
{
return FALSE;
}
}
Kommentar