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


Posted in PHP onApril 08, 2018

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

<?php
/*
 * Copyright 2010-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License.
 * A copy of the License is located at
 *
 * http://aws.amazon.com/apache2.0
 *
 * or in the "license" file accompanying this file. This file is distributed
 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */
/*%******************************************************************************************%*/
// CLASS
/**
 * Simplifies the process of looking up the content-types for a variety of file extensions.
 *
 * @version 2010.07.20
 * @license See the included NOTICE.md file for more information.
 * @copyright See the included NOTICE.md file for more information.
 * @link http://aws.amazon.com/php/ PHP Developer Center
 */
class CFMimeTypes
{
  /**
   * Map of the extension-to-mime-types that we support.
   */
  public static $mime_types = array(
    '3gp' => 'video/3gpp',
    'ai' => 'application/postscript',
    'aif' => 'audio/x-aiff',
    'aifc' => 'audio/x-aiff',
    'aiff' => 'audio/x-aiff',
    'asc' => 'text/plain',
    'atom' => 'application/atom+xml',
    'au' => 'audio/basic',
    'avi' => 'video/x-msvideo',
    'bcpio' => 'application/x-bcpio',
    'bin' => 'application/octet-stream',
    'bmp' => 'image/bmp',
    'cdf' => 'application/x-netcdf',
    'cgm' => 'image/cgm',
    'class' => 'application/octet-stream',
    'cpio' => 'application/x-cpio',
    'cpt' => 'application/mac-compactpro',
    'csh' => 'application/x-csh',
    'css' => 'text/css',
    'dcr' => 'application/x-director',
    'dif' => 'video/x-dv',
    'dir' => 'application/x-director',
    'djv' => 'image/vnd.djvu',
    'djvu' => 'image/vnd.djvu',
    'dll' => 'application/octet-stream',
    'dmg' => 'application/octet-stream',
    'dms' => 'application/octet-stream',
    'doc' => 'application/msword',
    'dtd' => 'application/xml-dtd',
    'dv' => 'video/x-dv',
    'dvi' => 'application/x-dvi',
    'dxr' => 'application/x-director',
    'eps' => 'application/postscript',
    'etx' => 'text/x-setext',
    'exe' => 'application/octet-stream',
    'ez' => 'application/andrew-inset',
    'flv' => 'video/x-flv',
    'gif' => 'image/gif',
    'gram' => 'application/srgs',
    'grxml' => 'application/srgs+xml',
    'gtar' => 'application/x-gtar',
    'gz' => 'application/x-gzip',
    'hdf' => 'application/x-hdf',
    'hqx' => 'application/mac-binhex40',
    'htm' => 'text/html',
    'html' => 'text/html',
    'ice' => 'x-conference/x-cooltalk',
    'ico' => 'image/x-icon',
    'ics' => 'text/calendar',
    'ief' => 'image/ief',
    'ifb' => 'text/calendar',
    'iges' => 'model/iges',
    'igs' => 'model/iges',
    'jnlp' => 'application/x-java-jnlp-file',
    'jp2' => 'image/jp2',
    'jpe' => 'image/jpeg',
    'jpeg' => 'image/jpeg',
    'jpg' => 'image/jpeg',
    'js' => 'application/x-javascript',
    'kar' => 'audio/midi',
    'latex' => 'application/x-latex',
    'lha' => 'application/octet-stream',
    'lzh' => 'application/octet-stream',
    'm3u' => 'audio/x-mpegurl',
    'm4a' => 'audio/mp4a-latm',
    'm4p' => 'audio/mp4a-latm',
    'm4u' => 'video/vnd.mpegurl',
    'm4v' => 'video/x-m4v',
    'mac' => 'image/x-macpaint',
    'man' => 'application/x-troff-man',
    'mathml' => 'application/mathml+xml',
    'me' => 'application/x-troff-me',
    'mesh' => 'model/mesh',
    'mid' => 'audio/midi',
    'midi' => 'audio/midi',
    'mif' => 'application/vnd.mif',
    'mov' => 'video/quicktime',
    'movie' => 'video/x-sgi-movie',
    'mp2' => 'audio/mpeg',
    'mp3' => 'audio/mpeg',
    'mp4' => 'video/mp4',
    'mpe' => 'video/mpeg',
    'mpeg' => 'video/mpeg',
    'mpg' => 'video/mpeg',
    'mpga' => 'audio/mpeg',
    'ms' => 'application/x-troff-ms',
    'msh' => 'model/mesh',
    'mxu' => 'video/vnd.mpegurl',
    'nc' => 'application/x-netcdf',
    'oda' => 'application/oda',
    'ogg' => 'application/ogg',
    'ogv' => 'video/ogv',
    'pbm' => 'image/x-portable-bitmap',
    'pct' => 'image/pict',
    'pdb' => 'chemical/x-pdb',
    'pdf' => 'application/pdf',
    'pgm' => 'image/x-portable-graymap',
    'pgn' => 'application/x-chess-pgn',
    'pic' => 'image/pict',
    'pict' => 'image/pict',
    'png' => 'image/png',
    'pnm' => 'image/x-portable-anymap',
    'pnt' => 'image/x-macpaint',
    'pntg' => 'image/x-macpaint',
    'ppm' => 'image/x-portable-pixmap',
    'ppt' => 'application/vnd.ms-powerpoint',
    'ps' => 'application/postscript',
    'qt' => 'video/quicktime',
    'qti' => 'image/x-quicktime',
    'qtif' => 'image/x-quicktime',
    'ra' => 'audio/x-pn-realaudio',
    'ram' => 'audio/x-pn-realaudio',
    'ras' => 'image/x-cmu-raster',
    'rdf' => 'application/rdf+xml',
    'rgb' => 'image/x-rgb',
    'rm' => 'application/vnd.rn-realmedia',
    'roff' => 'application/x-troff',
    'rtf' => 'text/rtf',
    'rtx' => 'text/richtext',
    'sgm' => 'text/sgml',
    'sgml' => 'text/sgml',
    'sh' => 'application/x-sh',
    'shar' => 'application/x-shar',
    'silo' => 'model/mesh',
    'sit' => 'application/x-stuffit',
    'skd' => 'application/x-koan',
    'skm' => 'application/x-koan',
    'skp' => 'application/x-koan',
    'skt' => 'application/x-koan',
    'smi' => 'application/smil',
    'smil' => 'application/smil',
    'snd' => 'audio/basic',
    'so' => 'application/octet-stream',
    'spl' => 'application/x-futuresplash',
    'src' => 'application/x-wais-source',
    'sv4cpio' => 'application/x-sv4cpio',
    'sv4crc' => 'application/x-sv4crc',
    'svg' => 'image/svg+xml',
    'swf' => 'application/x-shockwave-flash',
    't' => 'application/x-troff',
    'tar' => 'application/x-tar',
    'tcl' => 'application/x-tcl',
    'tex' => 'application/x-tex',
    'texi' => 'application/x-texinfo',
    'texinfo' => 'application/x-texinfo',
    'tif' => 'image/tiff',
    'tiff' => 'image/tiff',
    'tr' => 'application/x-troff',
    'tsv' => 'text/tab-separated-values',
    'txt' => 'text/plain',
    'ustar' => 'application/x-ustar',
    'vcd' => 'application/x-cdlink',
    'vrml' => 'model/vrml',
    'vxml' => 'application/voicexml+xml',
    'wav' => 'audio/x-wav',
    'wbmp' => 'image/vnd.wap.wbmp',
    'wbxml' => 'application/vnd.wap.wbxml',
    'webm' => 'video/webm',
    'wml' => 'text/vnd.wap.wml',
    'wmlc' => 'application/vnd.wap.wmlc',
    'wmls' => 'text/vnd.wap.wmlscript',
    'wmlsc' => 'application/vnd.wap.wmlscriptc',
    'wmv' => 'video/x-ms-wmv',
    'wrl' => 'model/vrml',
    'xbm' => 'image/x-xbitmap',
    'xht' => 'application/xhtml+xml',
    'xhtml' => 'application/xhtml+xml',
    'xls' => 'application/vnd.ms-excel',
    'xml' => 'application/xml',
    'xpm' => 'image/x-xpixmap',
    'xsl' => 'application/xml',
    'xslt' => 'application/xslt+xml',
    'xul' => 'application/vnd.mozilla.xul+xml',
    'xwd' => 'image/x-xwindowdump',
    'xyz' => 'chemical/x-xyz',
    'zip' => 'application/zip',
  );
  /**
   * Attempt to match the file extension to a known mime-type.
   *
   * @param string $ext (Required) The file extension to attempt to map.
   * @return string The mime-type to use for the file extension.
   */
  public static function get_mimetype($ext)
  {
    $ext = strtolower($ext); // Make sure the passed in extension is lowercase
    return isset(self::$mime_types[$ext]) ? self::$mime_types[$ext] : 'application/octet-stream';
  }
}

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP 文件上传源码分析(RFC1867)
Oct 30 PHP
解决PHP mysql_query执行超时(Fatal error: Maximum execution time …)
Jul 03 PHP
如何解决CI框架的Disallowed Key Characters错误提示
Jul 05 PHP
php查询mssql出现乱码的解决方法
Dec 29 PHP
Yii中创建自己的Widget实例
Jan 05 PHP
PHP数组实例详解
Jun 26 PHP
基于php实现的php代码加密解密类完整实例
Oct 12 PHP
简单实现PHP留言板功能
Dec 21 PHP
PHP实现根据密码长度显示安全条
Jul 04 PHP
Windows上php5.6操作mongodb数据库示例【配置、连接、获取实例】
Feb 13 PHP
PHP与Web页面的交互示例详解二
Aug 04 PHP
如何解决php-fpm启动不了问题
Nov 17 PHP
PHP面向对象之里氏替换原则简单示例
Apr 08 #PHP
PHP面向对象五大原则之依赖倒置原则(DIP)详解
Apr 08 #PHP
PHP面向对象五大原则之里氏替换原则(LSP)详解
Apr 08 #PHP
PHP实现微信红包金额拆分试玩的算法示例
Apr 07 #PHP
PHP面向对象五大原则之接口隔离原则(ISP)详解
Apr 04 #PHP
PHP面向对象五大原则之开放-封闭原则(OCP)详解
Apr 04 #PHP
PHP面向对象五大原则之单一职责原则(SRP)详解
Apr 04 #PHP
You might like
学习php设计模式 php实现装饰器模式(decorator)
2015/12/07 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
短信提示使用 特效
2007/01/19 Javascript
List Information About the Binary Files Used by an Application
2007/06/18 Javascript
一些实用的jQuery代码片段收集
2011/07/12 Javascript
jquery使用淘宝接口跨域查询手机号码归属地实例
2013/11/28 Javascript
jquery实现仿JqueryUi可拖动的DIV实例
2015/07/31 Javascript
javascript对象的创建和访问
2016/03/08 Javascript
JavaScript继承学习笔记【新手必看】
2016/05/10 Javascript
AngularJS 中的Promise --- $q服务详解
2016/09/14 Javascript
canvas实现动态小球重叠效果
2017/02/06 Javascript
angularjs项目的页面跳转如何实现(5种方法)
2017/05/25 Javascript
js模拟百度模糊搜索的实例
2017/08/04 Javascript
Webpack性能优化 DLL 用法详解
2017/08/10 Javascript
ES6之模版字符串的具体使用
2018/05/17 Javascript
vue 父组件通过v-model接收子组件的值的代码
2019/10/27 Javascript
封装一下vue中的axios示例代码详解
2020/02/16 Javascript
ant-design-vue按需加载的坑的解决
2020/05/14 Javascript
解决vue项目,npm run build后,报路径错的问题
2020/08/13 Javascript
原生JavaScript实现留言板
2021/01/10 Javascript
[36:14]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第二局
2016/02/28 DOTA
跟老齐学Python之再深点,更懂list
2014/09/20 Python
Python多线程编程(三):threading.Thread类的重要函数和方法
2015/04/05 Python
python处理“
2019/06/10 Python
python 进程的几种创建方式详解
2019/08/29 Python
python安装sklearn模块的方法详解
2020/11/28 Python
利用CSS3实现文字折纸效果实例代码
2018/07/10 HTML / CSS
英国助听器购物网站:Hearing Direct
2018/08/21 全球购物
Scotch Porter官方网站:男士美容产品
2020/08/31 全球购物
上班睡觉检讨书
2014/01/09 职场文书
六查六看剖析材料
2014/02/15 职场文书
大学理论知识学习自我鉴定
2014/04/28 职场文书
2014年保险公司工作总结
2014/11/22 职场文书
2016年清明节红领巾广播稿
2015/12/17 职场文书
Python+uiautomator2实现自动刷抖音视频功能
2021/04/29 Python
Python使用PyYAML库读写yaml文件的方法
2022/04/06 Python