2015-04-27 12:47:10 +02:00
|
|
|
<?php namespace Todaymade\Daux\Server;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Class MimeType
|
|
|
|
* @author Dennis Fridrich <fridrich.dennis@gmail.com>
|
|
|
|
* @see http://www.php.net/mime_content_type
|
|
|
|
*/
|
|
|
|
class MimeType
|
|
|
|
{
|
|
|
|
/**
|
|
|
|
* @var array
|
|
|
|
*/
|
2016-07-27 21:32:51 +02:00
|
|
|
protected static $mimeTypes = [
|
2015-04-27 12:47:10 +02:00
|
|
|
'txt' => 'text/plain',
|
|
|
|
'htm' => 'text/html',
|
|
|
|
'html' => 'text/html',
|
|
|
|
'php' => 'text/html',
|
|
|
|
'css' => 'text/css',
|
|
|
|
'js' => 'application/javascript',
|
|
|
|
'json' => 'application/json',
|
|
|
|
'xml' => 'application/xml',
|
|
|
|
'swf' => 'application/x-shockwave-flash',
|
|
|
|
'flv' => 'video/x-flv',
|
|
|
|
// Images
|
|
|
|
'png' => 'image/png',
|
|
|
|
'jpe' => 'image/jpeg',
|
|
|
|
'jpeg' => 'image/jpeg',
|
|
|
|
'jpg' => 'image/jpeg',
|
|
|
|
'gif' => 'image/gif',
|
|
|
|
'bmp' => 'image/bmp',
|
|
|
|
'ico' => 'image/vnd.microsoft.icon',
|
|
|
|
'tiff' => 'image/tiff',
|
|
|
|
'tif' => 'image/tiff',
|
|
|
|
'svg' => 'image/svg+xml',
|
|
|
|
'svgz' => 'image/svg+xml',
|
|
|
|
// Archives
|
|
|
|
'zip' => 'application/zip',
|
|
|
|
'rar' => 'application/x-rar-compressed',
|
|
|
|
'exe' => 'application/x-msdownload',
|
|
|
|
'msi' => 'application/x-msdownload',
|
|
|
|
'cab' => 'application/vnd.ms-cab-compressed',
|
|
|
|
// Audio/video
|
|
|
|
'mp3' => 'audio/mpeg',
|
|
|
|
'qt' => 'video/quicktime',
|
|
|
|
'mov' => 'video/quicktime',
|
|
|
|
// Adobe
|
|
|
|
'pdf' => 'application/pdf',
|
|
|
|
'psd' => 'image/vnd.adobe.photoshop',
|
|
|
|
'ai' => 'application/postscript',
|
|
|
|
'eps' => 'application/postscript',
|
|
|
|
'ps' => 'application/postscript',
|
|
|
|
// MS Office
|
|
|
|
'doc' => 'application/msword',
|
|
|
|
'rtf' => 'application/rtf',
|
|
|
|
'xls' => 'application/vnd.ms-excel',
|
|
|
|
'ppt' => 'application/vnd.ms-powerpoint',
|
|
|
|
// Open Office
|
|
|
|
'odt' => 'application/vnd.oasis.opendocument.text',
|
|
|
|
'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
|
2016-07-27 21:32:51 +02:00
|
|
|
];
|
2015-04-27 12:47:10 +02:00
|
|
|
/**
|
|
|
|
* @param $filename
|
|
|
|
* @return string
|
|
|
|
*/
|
|
|
|
public static function get($filename)
|
|
|
|
{
|
|
|
|
$pathInfo = pathinfo($filename);
|
|
|
|
$extension = strtolower($pathInfo['extension']);
|
|
|
|
if (array_key_exists($extension, self::$mimeTypes)) {
|
|
|
|
return self::$mimeTypes[$extension];
|
|
|
|
} elseif (function_exists('finfo_open') && is_file($filename)) {
|
|
|
|
$finfo = finfo_open(FILEINFO_MIME);
|
|
|
|
$mimetype = finfo_file($finfo, $filename);
|
|
|
|
finfo_close($finfo);
|
2016-07-27 21:32:51 +02:00
|
|
|
|
2015-04-27 12:47:10 +02:00
|
|
|
return $mimetype;
|
|
|
|
} else {
|
|
|
|
return 'application/octet-stream';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|