mime_content_type返回指定文件的MIME类型,
用法:
代码如下 echo mime_content_type ( "php.gif" ) . "n" ;echo mime_content_type ( "test.php" );
输出:
image/gif
text/plain
但是此函数在php5.3.0以后就不可用了,如果你是php5.3.0以后版本我们可使用
代码如下$finfo = finfo_open(FILEINFO_MIME);
$mimetype = finfo_file($finfo, $filename);
finfo_close($finfo);
来操作
下面介绍用户自定的我这个是没有php版本限制的。
代码如下
$mime = array (
//applications
"ai" => "application/postscript",
"eps" => "application/postscript",
"exe" => "application/octet-stream",
"doc" => "application/vnd.ms-word",
"xls" => "application/vnd.ms-excel",
"ppt" => "application/vnd.ms-powerpoint",
"pps" => "application/vnd.ms-powerpoint",
"pdf" => "application/pdf",
"xml" => "application/xml",
"odt" => "application/vnd.oasis.opendocument.text",
"swf" => "application/x-shockwave-flash",
// archives
"gz" => "application/x-gzip",
"tgz" => "application/x-gzip",
"bz" => "application/x-bzip2",
"bz2" => "application/x-bzip2",
"tbz" => "application/x-bzip2",
"zip" => "application/zip",
"rar" => "application/x-rar",
"tar" => "application/x-tar",
"7z" => "application/x-7z-compressed",
// texts
"txt" => "text/plain",
"php" => "text/x-php",
"html" => "text/html",
"htm" => "text/html",
"js" => "text/javascript",
"css" => "text/css",
"rtf" => "text/rtf",
"rtfd" => "text/rtfd",
"py" => "text/x-python",
"java" => "text/x-java-source",
"rb" => "text/x-ruby",
"sh" => "text/x-shellscript",
"pl" => "text/x-perl",
"sql" => "text/x-sql",
// images
"bmp" => "image/x-ms-bmp",
"jpg" => "image/jpeg",
"jpeg" => "image/jpeg",
"gif" => "image/gif",
"png" => "image/png",
"tif" => "image/tiff",
"tiff" => "image/tiff",
"tga" => "image/x-targa",
"psd" => "image/vnd.adobe.photoshop",
//audio
"mp3" => "audio/mpeg",
"mid" => "audio/midi",
"ogg" => "audio/ogg",
"mp4a" => "audio/mp4",
"wav" => "audio/wav",
"wma" => "audio/x-ms-wma",
// video
"avi" => "video/x-msvideo",
"dv" => "video/x-dv",
"mp4" => "video/mp4",
"mpeg" => "video/mpeg",
"mpg" => "video/mpeg",
"mov" => "video/quicktime",
"wm" => "video/x-ms-wmv",
"flv" => "video/x-flv",
"mkv" => "video/x-matroska"
);
function _getMimeDetect() {
if (class_exists("finfo")) {
return "finfo";
} else if (function_exists("mime_content_type")) {
return "mime_content_type";
} else if ( function_exists("exec")) {
$result = exec("file -ib ".escapeshellarg(__FILE__));
if ( 0 === strpos($result, "text/x-php") OR 0 === strpos($result, "text/x-c++")) {
return "linux";
}
$result = exec("file -Ib ".escapeshellarg(__FILE__));
if ( 0 === strpos($result, "text/x-php") OR 0 === strpos($result, "text/x-c++")) {
return "bsd";
}
}
return "internal";
}
function _getMimeType($path) {
global $mime;
$fmime = _getMimeDetect();
switch($fmime) {
case "finfo":
$finfo = finfo_open(FILEINFO_MIME);
if ($finfo)
$type = @finfo_file($finfo, $path);
break;
case "mime_content_type":
$type = mime_content_type($path);
break;
case "linux":
$type = exec("file -ib ".escapeshellarg($path));
break;
case "bsd":
$type = exec("file -Ib ".escapeshellarg($path));
break;
default:
$pinfo = pathinfo($path);
$ext = isset($pinfo["extension"]) ? strtolower($pinfo["extension"]) : "";
$type = isset($mime[$ext]) ? $mime[$ext] : "unkown";
break;
}
$type = explode(";", $type);
//需要加上这段,因为如果使用mime_content_type函数来获取一个不存在的$path时会返回"application/octet-stream"
if ($fmime != "internal" AND $type[0] == "application/octet-stream") {
$pinfo = pathinfo($path);
$ext = isset($pinfo["extension"]) ? strtolower($pinfo["extension"]) : "";
if (!empty($ext) AND !empty($mime[$ext])) {
$type[0] = $mime[$ext];
}
}
return $type[0];
}
$path = "1.txt"; //实际上当前路径并不存在1.txt
var_dump(_getMimeType($path));
/*End of php*/
只允许下列mime类型文件_php获取文件mime类型程序代码
http://m.bbyears.com/jiaocheng/37180.html
推荐访问: