【美高梅国际注册】php实现获取文件mime类型的方法,PHP获取文件mime信息方法

美高梅国际注册,正文实例陈诉了php获取文件mime类型的不二等秘书技。分享给大家供大家参照他事他说加以考察。具体如下:

     
MIME类型就是设定某种扩展名的公文用一种应用程序来开荒的格局种类,当该扩展名文件被访问的时候,浏览器会活动使用钦点应用程序来张开。多用于钦命一些客户端自定义的文书名,以及部分媒体文件张开药格局。

诚如情状下,使用$_FILES那一个放手常量就能够赢获得:

咱俩在上传文件到服务器的时候非常多时候会持有限制,比方大家渴求的是上传三个压缩文件,就要判定她的格式
,举例”zip” or “rar” 呀,那几个都以很有不能缺少的,所以上边给出一个例子

1.使用 mime_content_type 方法

php获取文件mime类型有以下三种情势:

array*(size=5)‘name’=>string’E671F5BD-E11D-4914-B9C6-2910F14118C5.JPG’(length=40)‘type’=>string’image/jpeg’【美高梅国际注册】php实现获取文件mime类型的方法,PHP获取文件mime信息方法。(length=10)‘tmp_name’=>string’D:\wamp\tmp\php18A4.tmp’(length=23)*’error’=>int0’size’=>int169592


string mime_content_type ( string $filename )

1、mime_content_type()函数推断获得mime类型

假定您不得不获得到图片的真实路径的话,那么能够动用上边包车型地铁不二等秘书籍:

<?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*/

Returns the MIME content type for a file as
determined by using information from the magic.mime file.  

 mime_content_type再次来到钦赐文件的MIME类型,

采取上边三种方法的前提是要开启php_fileinfo.dll那一个扩张。而PHP5.3未来那么些扩张是私下认可开启的。


<?php 
$mime_type = mime_content_type('1.jpg'); 
echo $mime_type; // image/jpeg 
?>

用法:
echomime_content_type(‘php.gif’) .”\n”;
echomime_content_type(‘test.php’);
输出:

1.通过mime_content_type方法获得:

但此方法在 php5.3 以上就被扬弃了,官方提议利用 fileinfo 方法替代。

image/gif
text/plain

echomime_content_type(‘php.gif’) .”\n”;

2.使用 Fileinfo 方法 (官方推荐)

不过php
5.3.0曾经将该函数屏弃。借使仍想选用此函数,那么可以对php举办安顿启用magic_mime扩展。 

echomime_content_type(‘test.php’);

动用fileinfo必要设置php_fileinfo扩展。
如已设置能够在extension_dir目录下找到php_fileinfo.dll(windows),fileinfo.so(linux)
打开php.ini,把extension=php_fileinfo.dll前的”;”去掉,然后重启apache。

2、php Fileinfo 获取文件MIME类型(finfo_open)

以上例程会输出:

网站地图xml地图