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中的生成XML文件的4种方法分享
Oct 06 PHP
PHP读取PDF内容配合Xpdf的使用
Nov 24 PHP
PHP遍历某个目录下的所有文件和子文件夹的实现代码
Jun 28 PHP
php+MySQL判断update语句是否执行成功的方法
Aug 28 PHP
PHP中的事务使用实例
May 26 PHP
PHP合并discuz用户脚本的方法
Aug 04 PHP
PHP读取并输出XML文件数据的简单实现方法
Dec 22 PHP
PHP调用其他文件中的类
Apr 02 PHP
layui框架实现文件上传及TP3.2.3(thinkPHP)对上传文件进行后台处理操作示例
May 12 PHP
php微信开发之关注事件
Jun 14 PHP
Laravel 添加多语言提示信息的方法
Sep 29 PHP
TP5框架实现上传多张图片的方法分析
Mar 29 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 代码规范小结
2012/03/08 PHP
Laravel框架集合用法实例浅析
2020/05/14 PHP
如果文字过长,则将过长的部分变成省略号显示
2006/06/26 Javascript
Lua表达式和控制结构学习笔记
2014/12/15 Javascript
JavaScript学习笔记之Function对象
2015/01/22 Javascript
关于原生js中bind函数的简单实现
2016/08/10 Javascript
微信小程序 location API实例详解
2016/10/02 Javascript
分享javascript、jquery实用代码段
2016/10/20 Javascript
JS获取浮动(float)元素的style.left值为空的快速解决办法
2017/02/19 Javascript
基于Bootstrap的网页设计实例
2017/03/01 Javascript
jQuery中用on绑定事件时需注意的事项
2017/03/19 Javascript
php结合js实现多条件组合查询
2019/05/28 Javascript
超轻量级的js时间库miment使用解析
2019/08/02 Javascript
JS插入排序简单理解与实现方法分析
2019/11/25 Javascript
js实现简单的秒表
2020/01/16 Javascript
vue 实现setInterval 创建和销毁实例
2020/07/21 Javascript
Python Socket编程入门教程
2014/07/11 Python
Python中关于使用模块的基础知识
2015/05/24 Python
Python实现删除当前目录下除当前脚本以外的文件和文件夹实例
2015/07/27 Python
python利用datetime模块计算时间差
2015/08/04 Python
浅谈五大Python Web框架
2017/03/20 Python
Python制作豆瓣图片的爬虫
2017/12/28 Python
Falsk 与 Django 过滤器的使用与区别详解
2019/06/04 Python
浅谈keras中Dropout在预测过程中是否仍要起作用
2020/07/09 Python
python调用私有属性的方法总结
2020/07/24 Python
HTML5中FileReader接口使用方法实例详解
2017/08/26 HTML / CSS
Hunter Boots美国官方网站:赫特威灵顿雨靴
2018/06/16 全球购物
英国最受欢迎的母婴精品品牌:JoJo Maman BéBé
2021/02/17 全球购物
财务工作犯错检讨书
2014/10/07 职场文书
公司承诺函范文
2015/01/21 职场文书
2015年学校医务室工作总结
2015/07/20 职场文书
环保建议书作文300字
2015/09/14 职场文书
mysql优化
2021/04/06 MySQL
雄兵连:第三季先行图公开,天使恶魔联合,银河之力的新力量
2021/06/11 国漫
Python OpenCV超详细讲解调整大小与图像操作的实现
2022/04/02 Python
spring IOC容器的Bean管理XML自动装配过程
2022/05/30 Java/Android