好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php获取文件mime类型程序代码 - php文件操作

php获取文件mime类型程序代码

在php中获取文件的mime类型方法有很多种,我们来介绍直接利用mime_content_type()函数判断获取mime类型即可了.

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版本限制,代码如下:

<?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 empty ( $ext ) AND ! empty empty ( $mime [ $ext ])) {      $type [0] =  $mime [ $ext ];    }   }      return   $type [0];  }  $path  =  '1.txt' ;   //实际上当前路径并不存在1.txt   var_dump(_getMimeType( $path ));  /*End of php*/

查看更多关于php获取文件mime类型程序代码 - php文件操作的详细内容...

  阅读:75次