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 相关文章推荐
支持oicq头像的留言簿(二)
Oct 09 PHP
php ss7.5的数据调用 (笔记)
Mar 08 PHP
php中比较简单的导入phpmyadmin生成的sql文件的方法
Jun 28 PHP
php入门学习知识点一 PHP与MYSql连接与查询
Jul 14 PHP
php多功能图片处理类分享(php图片缩放类)
Mar 14 PHP
thinkphp中ajax与php响应过程详解
Dec 08 PHP
PHP预定义变量9大超全局数组用法详解
Apr 23 PHP
PHP内置加密函数详解
Nov 20 PHP
php实现微信扫码支付
Mar 26 PHP
php 数组元素快速去重
May 05 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
Nov 25 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
Windows中安装Apache2和PHP4权威指南
2006/11/18 PHP
php INI配置文件的解析实现分析
2011/01/04 PHP
PHP结合jquery ajax实现上传多张图片,并限制图片大小操作示例
2019/03/01 PHP
关于javascript 回调函数中变量作用域的讨论
2009/09/11 Javascript
一个基于jquery的图片切换效果
2010/07/06 Javascript
js对字符的验证方法汇总
2015/02/04 Javascript
JS模态窗口返回值兼容问题的完美解决方法
2016/05/28 Javascript
NodeJS实现客户端js加密
2017/01/09 NodeJs
基于JavaScript实现的快速排序算法分析
2017/04/14 Javascript
BootStrap Table前台和后台分页对JSON格式的要求
2017/06/28 Javascript
MUI实现上拉加载和下拉刷新效果
2017/06/30 Javascript
详解Vue 中 extend 、component 、mixins 、extends 的区别
2017/12/20 Javascript
vue+mousemove实现鼠标拖动功能(拖动过快失效问题解决方法)
2018/08/24 Javascript
nodejs使用async模块同步执行的方法
2019/03/02 NodeJs
vue-resource 拦截器interceptors使用详解
2021/01/18 Vue.js
原生js实现九宫格拖拽换位
2021/01/26 Javascript
[48:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第二场 1月29日
2021/03/11 DOTA
在win和Linux系统中python命令行运行的不同
2016/07/03 Python
Python 基础教程之包和类的用法
2017/02/23 Python
Python自定义装饰器原理与用法实例分析
2018/07/16 Python
python3+opencv3识别图片中的物体并截取的方法
2018/12/05 Python
python实现基于信息增益的决策树归纳
2018/12/18 Python
在cmd中查看python的安装路径方法
2019/07/03 Python
python多任务之协程的使用详解
2019/08/26 Python
Python paramiko模块使用解析(实现ssh)
2019/08/30 Python
基于virtualenv创建python虚拟环境过程图解
2020/03/30 Python
conda安装tensorflow和conda常用命令小结
2021/02/20 Python
HTML中meta标签及Keywords
2020/04/15 HTML / CSS
松下电器美国官方商店:Panasonic美国
2016/10/14 全球购物
Baby Tulai澳大利亚:美国婴儿背带品牌
2018/10/15 全球购物
俄罗斯大型在线书店:Читай-город
2019/10/10 全球购物
美国Max仓库:Max Warehouse
2020/05/31 全球购物
查询优化的一般准则有哪些
2015/03/08 面试题
关于运动会的口号
2014/06/07 职场文书
党员违纪检讨书怎么写
2014/11/01 职场文书
创业计划书之淘宝网店
2019/10/08 职场文书