当前位置:首页 > PHP教程 > php高级应用 > 列表

PHP实现的获取文件mimes类型工具类示例

发布:smiling 来源: PHP粉丝网  添加日期:2021-09-07 09:38:22 浏览: 评论:0 

这篇文章主要介绍了PHP实现的获取文件mimes类型工具类,结合实例形式分析了php针对文件mimes类型的相关判断操作技巧,需要的朋友可以参考下。

本文实例讲述了PHP实现的获取文件mimes类型工具类,分享给大家供大家参考,具体如下:

  1. <?php 
  2. /* 
  3.  * Copyright 2010-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. 
  4.  * 
  5.  * Licensed under the Apache License, Version 2.0 (the "License"). 
  6.  * You may not use this file except in compliance with the License. 
  7.  * A copy of the License is located at 
  8.  * 
  9.  * http://aws.amazon.com/apache2.0 
  10.  * 
  11.  * or in the "license" file accompanying this file. This file is distributed 
  12.  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 
  13.  * express or implied. See the License for the specific language governing 
  14.  * permissions and limitations under the License. 
  15.  */ 
  16. /*%******************************************************************************************%*/ 
  17. // CLASS 
  18. /** 
  19.  * Simplifies the process of looking up the content-types for a variety of file extensions. 
  20.  * 
  21.  * @version 2010.07.20 
  22.  * @license See the included NOTICE.md file for more information. 
  23.  * @copyright See the included NOTICE.md file for more information. 
  24.  * @link http://aws.amazon.com/php/ PHP Developer Center 
  25.  */ 
  26. class CFMimeTypes 
  27.   /** 
  28.    * Map of the extension-to-mime-types that we support. 
  29.    */ 
  30.   public static $mime_types = array
  31.     '3gp' => 'video/3gpp'
  32.     'ai' => 'application/postscript'
  33.     'aif' => 'audio/x-aiff'
  34.     'aifc' => 'audio/x-aiff'
  35.     'aiff' => 'audio/x-aiff'
  36.     'asc' => 'text/plain'
  37.     'atom' => 'application/atom+xml'
  38.     'au' => 'audio/basic'
  39.     'avi' => 'video/x-msvideo'
  40.     'bcpio' => 'application/x-bcpio'
  41.     'bin' => 'application/octet-stream'
  42.     'bmp' => 'image/bmp'
  43.     'cdf' => 'application/x-netcdf'
  44.     'cgm' => 'image/cgm'
  45.     'class' => 'application/octet-stream'
  46.     'cpio' => 'application/x-cpio'
  47.     'cpt' => 'application/mac-compactpro'
  48.     'csh' => 'application/x-csh'
  49.     'css' => 'text/css'
  50.     'dcr' => 'application/x-director'
  51.     'dif' => 'video/x-dv'
  52.     'dir' => 'application/x-director'
  53.     'djv' => 'image/vnd.djvu'
  54.     'djvu' => 'image/vnd.djvu'
  55.     'dll' => 'application/octet-stream'
  56.     'dmg' => 'application/octet-stream'
  57.     'dms' => 'application/octet-stream'
  58.     'doc' => 'application/msword'
  59.     'dtd' => 'application/xml-dtd'
  60.     'dv' => 'video/x-dv'
  61.     'dvi' => 'application/x-dvi'
  62.     'dxr' => 'application/x-director'
  63.     'eps' => 'application/postscript'
  64.     'etx' => 'text/x-setext'
  65.     'exe' => 'application/octet-stream'
  66.     'ez' => 'application/andrew-inset'
  67.     'flv' => 'video/x-flv'
  68.     'gif' => 'image/gif'
  69.     'gram' => 'application/srgs'
  70.     'grxml' => 'application/srgs+xml'
  71.     'gtar' => 'application/x-gtar'
  72.     'gz' => 'application/x-gzip'
  73.     'hdf' => 'application/x-hdf'
  74.     'hqx' => 'application/mac-binhex40'
  75.     'htm' => 'text/html'
  76.     'html' => 'text/html'
  77.     'ice' => 'x-conference/x-cooltalk'
  78.     'ico' => 'image/x-icon'
  79.     'ics' => 'text/calendar'
  80.     'ief' => 'image/ief'
  81.     'ifb' => 'text/calendar'
  82.     'iges' => 'model/iges'
  83.     'igs' => 'model/iges'
  84.     'jnlp' => 'application/x-java-jnlp-file'
  85.     'jp2' => 'image/jp2'
  86.     'jpe' => 'image/jpeg'
  87.     'jpeg' => 'image/jpeg'
  88.     'jpg' => 'image/jpeg'
  89.     'js' => 'application/x-javascript'
  90.     'kar' => 'audio/midi'
  91.     'latex' => 'application/x-latex'
  92.     'lha' => 'application/octet-stream'
  93.     'lzh' => 'application/octet-stream'
  94.     'm3u' => 'audio/x-mpegurl'
  95.     'm4a' => 'audio/mp4a-latm'
  96.     'm4p' => 'audio/mp4a-latm'
  97.     'm4u' => 'video/vnd.mpegurl'
  98.     'm4v' => 'video/x-m4v'
  99.     'mac' => 'image/x-macpaint'
  100.     'man' => 'application/x-troff-man'
  101.     'mathml' => 'application/mathml+xml'
  102.     'me' => 'application/x-troff-me'
  103.     'mesh' => 'model/mesh'
  104.     'mid' => 'audio/midi'
  105.     'midi' => 'audio/midi'
  106.     'mif' => 'application/vnd.mif'
  107.     'mov' => 'video/quicktime'
  108.     'movie' => 'video/x-sgi-movie'
  109.     'mp2' => 'audio/mpeg'
  110.     'mp3' => 'audio/mpeg'
  111.     'mp4' => 'video/mp4'
  112.     'mpe' => 'video/mpeg'
  113.     'mpeg' => 'video/mpeg'
  114.     'mpg' => 'video/mpeg'
  115.     'mpga' => 'audio/mpeg'
  116.     'ms' => 'application/x-troff-ms'
  117.     'msh' => 'model/mesh'
  118.     'mxu' => 'video/vnd.mpegurl'
  119.     'nc' => 'application/x-netcdf'
  120.     'oda' => 'application/oda'
  121.     'ogg' => 'application/ogg'
  122.     'ogv' => 'video/ogv'
  123.     'pbm' => 'image/x-portable-bitmap'
  124.     'pct' => 'image/pict'
  125.     'pdb' => 'chemical/x-pdb'
  126.     'pdf' => 'application/pdf'
  127.     'pgm' => 'image/x-portable-graymap'
  128.     'pgn' => 'application/x-chess-pgn'
  129.     'pic' => 'image/pict'
  130.     'pict' => 'image/pict'
  131.     'png' => 'image/png'
  132.     'pnm' => 'image/x-portable-anymap'
  133.     'pnt' => 'image/x-macpaint'
  134.     'pntg' => 'image/x-macpaint'
  135.     'ppm' => 'image/x-portable-pixmap'
  136.     'ppt' => 'application/vnd.ms-powerpoint'
  137.     'ps' => 'application/postscript'
  138.     'qt' => 'video/quicktime'
  139.     'qti' => 'image/x-quicktime'
  140.     'qtif' => 'image/x-quicktime'
  141.     'ra' => 'audio/x-pn-realaudio'
  142.     'ram' => 'audio/x-pn-realaudio'
  143.     'ras' => 'image/x-cmu-raster'
  144.     'rdf' => 'application/rdf+xml'
  145.     'rgb' => 'image/x-rgb'
  146.     'rm' => 'application/vnd.rn-realmedia'
  147.     'roff' => 'application/x-troff'
  148.     'rtf' => 'text/rtf'
  149.     'rtx' => 'text/richtext'
  150.     'sgm' => 'text/sgml'
  151.     'sgml' => 'text/sgml'
  152.     'sh' => 'application/x-sh'
  153.     'shar' => 'application/x-shar'
  154.     'silo' => 'model/mesh'
  155.     'sit' => 'application/x-stuffit'
  156.     'skd' => 'application/x-koan'
  157.     'skm' => 'application/x-koan'
  158.     'skp' => 'application/x-koan'
  159.     'skt' => 'application/x-koan'
  160.     'smi' => 'application/smil'
  161.     'smil' => 'application/smil'
  162.     'snd' => 'audio/basic'
  163.     'so' => 'application/octet-stream'
  164.     'spl' => 'application/x-futuresplash'
  165.     'src' => 'application/x-wais-source'
  166.     'sv4cpio' => 'application/x-sv4cpio'
  167.     'sv4crc' => 'application/x-sv4crc'
  168.     'svg' => 'image/svg+xml'
  169.     'swf' => 'application/x-shockwave-flash'
  170.     't' => 'application/x-troff'
  171.     'tar' => 'application/x-tar'
  172.     'tcl' => 'application/x-tcl'
  173.     'tex' => 'application/x-tex'
  174.     'texi' => 'application/x-texinfo'
  175.     'texinfo' => 'application/x-texinfo'
  176.     'tif' => 'image/tiff'
  177.     'tiff' => 'image/tiff'
  178.     'tr' => 'application/x-troff'
  179.     'tsv' => 'text/tab-separated-values'
  180.     'txt' => 'text/plain'
  181.     'ustar' => 'application/x-ustar'
  182.     'vcd' => 'application/x-cdlink'
  183.     'vrml' => 'model/vrml'
  184.     'vxml' => 'application/voicexml+xml'
  185.     'wav' => 'audio/x-wav'
  186.     'wbmp' => 'image/vnd.wap.wbmp'
  187.     'wbxml' => 'application/vnd.wap.wbxml'
  188.     'webm' => 'video/webm'
  189.     'wml' => 'text/vnd.wap.wml'
  190.     'wmlc' => 'application/vnd.wap.wmlc'
  191.     'wmls' => 'text/vnd.wap.wmlscript'
  192.     'wmlsc' => 'application/vnd.wap.wmlscriptc'
  193.     'wmv' => 'video/x-ms-wmv'
  194.     'wrl' => 'model/vrml'
  195.     'xbm' => 'image/x-xbitmap'
  196.     'xht' => 'application/xhtml+xml'
  197.     'xhtml' => 'application/xhtml+xml'
  198.     'xls' => 'application/vnd.ms-excel'
  199.     'xml' => 'application/xml'
  200.     'xpm' => 'image/x-xpixmap'
  201.     'xsl' => 'application/xml'
  202.     'xslt' => 'application/xslt+xml'
  203.     'xul' => 'application/vnd.mozilla.xul+xml'
  204.     'xwd' => 'image/x-xwindowdump'
  205.     'xyz' => 'chemical/x-xyz'
  206.     'zip' => 'application/zip'
  207.   ); 
  208.   /** 
  209.    * Attempt to match the file extension to a known mime-type. 
  210.    * 
  211.    * @param string $ext (Required) The file extension to attempt to map. 
  212.    * @return string The mime-type to use for the file extension. 
  213.    */ 
  214.   public static function get_mimetype($ext
  215.   { 
  216.     $ext = strtolower($ext); // Make sure the passed in extension is lowercase 
  217.     return isset(self::$mime_types[$ext]) ? self::$mime_types[$ext] : 'application/octet-stream'
  218.   } 
  219. }

Tags: PHP获取文件mimes

分享到: