ZwiiCMS/core/vendor/filemanager/include/mime_type_lib.php

268 lines
8.8 KiB
PHP
Executable File

<?php
$mime_types = array(
"application/postscript" => "ps",
"audio/x-aiff" => "aiff",
"text/plain" => "txt",
"video/x-ms-asf" => "asx",
"audio/basic" => "snd",
"video/x-msvideo" => "avi",
"application/x-bcpio" => "bcpio",
"application/octet-stream" => "so",
"image/bmp" => "bmp",
"application/x-rar" => "rar",
"application/x-bzip2" => "bz2",
"application/x-netcdf" => "nc",
"application/x-kchart" => "chrt",
"application/x-cpio" => "cpio",
"application/mac-compactpro" => "cpt",
"application/x-csh" => "csh",
"text/css" => "css",
"application/x-director" => "dxr",
"image/vnd.djvu" => "djvu",
"application/x-dvi" => "dvi",
"image/vnd.dwg" => "dwg",
"application/epub" => "epub",
"application/epub+zip" => "epub",
"text/x-setext" => "etx",
"application/andrew-inset" => "ez",
"video/x-flv" => "flv",
"image/gif" => "gif",
"application/x-gtar" => "gtar",
"application/x-gzip" => "tgz",
"application/x-hdf" => "hdf",
"application/mac-binhex40" => "hqx",
"text/html" => "html",
"text/htm" => "htm",
"x-conference/x-cooltalk" => "ice",
"image/ief" => "ief",
"model/iges" => "igs",
"text/vnd.sun.j2me.app-descriptor" => "jad",
"application/x-java-archive" => "jar",
"application/x-java-jnlp-file" => "jnlp",
"image/jpeg" => "jpg",
"application/x-javascript" => "js",
"audio/midi" => "midi",
"application/x-killustrator" => "kil",
"application/x-kpresenter" => "kpt",
"application/x-kspread" => "ksp",
"application/x-kword" => "kwt",
"application/vnd.google-earth.kml+xml" => "kml",
"application/vnd.google-earth.kmz" => "kmz",
"application/x-latex" => "latex",
"audio/x-mpegurl" => "m3u",
"application/x-troff-man" => "man",
"application/x-troff-me" => "me",
"model/mesh" => "silo",
"application/vnd.mif" => "mif",
"video/quicktime" => "mov",
"video/x-sgi-movie" => "movie",
"audio/mpeg" => "mp3",
"video/mp4" => "mp4",
"video/mpeg" => "mpeg",
"application/x-troff-ms" => "ms",
"video/vnd.mpegurl" => "mxu",
"application/vnd.oasis.opendocument.database" => "odb",
"application/vnd.oasis.opendocument.chart" => "odc",
"application/vnd.oasis.opendocument.formula" => "odf",
"application/vnd.oasis.opendocument.graphics" => "odg",
"application/vnd.oasis.opendocument.image" => "odi",
"application/vnd.oasis.opendocument.text-master" => "odm",
"application/vnd.oasis.opendocument.presentation" => "odp",
"application/vnd.oasis.opendocument.spreadsheet" => "ods",
"application/vnd.oasis.opendocument.text" => "odt",
"application/ogg" => "ogg",
"video/ogg" => "ogv",
"application/vnd.oasis.opendocument.graphics-template" => "otg",
"application/vnd.oasis.opendocument.text-web" => "oth",
"application/vnd.oasis.opendocument.presentation-template" => "otp",
"application/vnd.oasis.opendocument.spreadsheet-template" => "ots",
"application/vnd.oasis.opendocument.text-template" => "ott",
"image/x-portable-bitmap" => "pbm",
"chemical/x-pdb" => "pdb",
"application/pdf" => "pdf",
"image/x-portable-graymap" => "pgm",
"application/x-chess-pgn" => "pgn",
"text/x-php" => "php",
"image/png" => "png",
"image/x-portable-anymap" => "pnm",
"image/x-portable-pixmap" => "ppm",
"application/vnd.ms-powerpoint" => "ppt",
"audio/x-realaudio" => "ra",
"audio/x-pn-realaudio" => "rm",
"image/x-cmu-raster" => "ras",
"image/x-rgb" => "rgb",
"application/x-troff" => "tr",
"application/x-rpm" => "rpm",
"text/rtf" => "rtf",
"text/richtext" => "rtx",
"text/sgml" => "sgml",
"application/x-sh" => "sh",
"application/x-shar" => "shar",
"application/vnd.symbian.install" => "sis",
"application/x-stuffit" => "sit",
"application/x-koan" => "skt",
"application/smil" => "smil",
"image/svg+xml" => "svg",
"application/x-futuresplash" => "spl",
"application/x-wais-source" => "src",
"application/vnd.sun.xml.calc.template" => "stc",
"application/vnd.sun.xml.draw.template" => "std",
"application/vnd.sun.xml.impress.template" => "sti",
"application/vnd.sun.xml.writer.template" => "stw",
"application/x-sv4cpio" => "sv4cpio",
"application/x-sv4crc" => "sv4crc",
"application/x-shockwave-flash" => "swf",
"application/vnd.sun.xml.calc" => "sxc",
"application/vnd.sun.xml.draw" => "sxd",
"application/vnd.sun.xml.writer.global" => "sxg",
"application/vnd.sun.xml.impress" => "sxi",
"application/vnd.sun.xml.math" => "sxm",
"application/vnd.sun.xml.writer" => "sxw",
"application/x-tar" => "tar",
"application/x-tcl" => "tcl",
"application/x-tex" => "tex",
"application/x-texinfo" => "texinfo",
"image/tiff" => "tiff",
"image/tiff-fx" => "tiff",
"application/x-bittorrent" => "torrent",
"text/tab-separated-values" => "tsv",
"application/x-ustar" => "ustar",
"application/x-cdlink" => "vcd",
"model/vrml" => "wrl",
"audio/x-wav" => "wav",
"audio/x-ms-wax" => "wax",
"image/vnd.wap.wbmp" => "wbmp",
"application/vnd.wap.wbxml" => "wbxml",
"video/x-ms-wm" => "wm",
"audio/x-ms-wma" => "wma",
"text/vnd.wap.wml" => "wml",
"application/vnd.wap.wmlc" => "wmlc",
"text/vnd.wap.wmlscript" => "wmls",
"application/vnd.wap.wmlscriptc" => "wmlsc",
"video/x-ms-wmv" => "wmv",
"video/x-ms-wmx" => "wmx",
"video/x-ms-wvx" => "wvx",
"image/x-xbitmap" => "xbm",
"application/xhtml+xml" => "xhtml",
"application/xml" => "xml",
"image/x-xpixmap" => "xpm",
"text/xsl" => "xsl",
"image/x-xwindowdump" => "xwd",
"chemical/x-xyz" => "xyz",
"application/zip" => "zip",
"application/msword" => "doc",
"application/vnd.openxmlformats-officedocument.wordprocessingml.document" => "docx",
"application/vnd.openxmlformats-officedocument.wordprocessingml.template" => "dotx",
"application/vnd.ms-word.document.macroEnabled.12" => "docm",
"application/vnd.ms-excel" => "xls",
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" => "xlsx",
"application/vnd.openxmlformats-officedocument.spreadsheetml.template" => "xltx",
"application/vnd.ms-excel.sheet.macroEnabled.12" => "xlsm",
"application/vnd.ms-excel.template.macroEnabled.12" => "xltm",
"application/vnd.ms-excel.addin.macroEnabled.12" => "xlam",
"application/vnd.ms-excel.sheet.binary.macroEnabled.12" => "xlsb",
"application/vnd.openxmlformats-officedocument.presentationml.presentation" => "pptx",
"application/vnd.openxmlformats-officedocument.presentationml.template" => "potx",
"application/vnd.openxmlformats-officedocument.presentationml.slideshow" => "ppsx",
"application/vnd.ms-powerpoint.addin.macroEnabled.12" => "ppam",
"application/vnd.ms-powerpoint.presentation.macroEnabled.12" => "pptm",
"application/vnd.ms-powerpoint.template.macroEnabled.12" => "potm",
"application/vnd.ms-powerpoint.slideshow.macroEnabled.12" => "ppsm",
);
if ( ! function_exists('get_extension_from_mime'))
{
function get_extension_from_mime($mime){
global $mime_types;
if(strpos($mime, ';')!==FALSE){
$mime = substr($mime, 0,strpos($mime, ';'));
}
if(isset($mime_types[$mime])){
return $mime_types[$mime];
}
return '';
}
}
if ( ! function_exists('get_file_mime_type'))
{
function get_file_mime_type($filename, $debug = false)
{
if (function_exists('finfo_open') && function_exists('finfo_file') && function_exists('finfo_close'))
{
$fileinfo = finfo_open(FILEINFO_MIME_TYPE);
$mime_type = finfo_file($fileinfo, $filename);
finfo_close($fileinfo);
if ( ! empty($mime_type))
{
if (true === $debug)
{
return array( 'mime_type' => $mime_type, 'method' => 'fileinfo' );
}
return $mime_type;
}
}
if (function_exists('mime_content_type'))
{
$mime_type = mime_content_type($filename);
if ( ! empty($mime_type))
{
if (true === $debug)
{
return array( 'mime_type' => $mime_type, 'method' => 'mime_content_type' );
}
return $mime_type;
}
}
global $mime_types;
$mime_types = array_flip($mime_types);
$tmp_array = explode('.', $filename);
$ext = strtolower(array_pop($tmp_array));
if ( ! empty($mime_types[ $ext ]))
{
if (true === $debug)
{
return array( 'mime_type' => $mime_types[ $ext ], 'method' => 'from_array' );
}
return $mime_types[ $ext ];
}
if (true === $debug)
{
return array( 'mime_type' => 'application/octet-stream', 'method' => 'last_resort' );
}
return 'application/octet-stream';
}
}
/********************
* The following code can be used to test the function.
* First put a plain text file named "test.txt" and a
* JPEG image file named "image.jpg" in the same folder
* as this file.
*
* Simply remove the "REMOVE ME TO TEST" lines below to have
* the code run when this file runs.
*
* Run the code with this command:
* php mime_type_lib.php
********************/
/* REMOVE ME TO TEST
echo get_file_mime_type( 'test.txt' ) . "\n";
echo print_r( get_file_mime_type( 'image.jpg', true ), true ) . "\n";
REMOVE ME TO TEST */