php 下载文件的头信息 Determine Content Type

php 下载文件的头信息 Determine Content Type

<?php
if(!function_exists('mime_content_type')) {

    function mime_content_type($filename) {

        $mime_types = array(

            'txt' => 'text/plain',
            'htm' => 'text/html',
            'html' => 'text/html',
            'php' => 'text/html',
            'css' => 'text/css',
            'js' => 'application/javascript',
            'json' => 'application/json',
            'xml' => 'application/xml',
            'swf' => 'application/x-shockwave-flash',
            'flv' => 'video/x-flv',

            // images
            'png' => 'image/png',
            'jpe' => 'image/jpeg',
            'jpeg' => 'image/jpeg',
            'jpg' => 'image/jpeg',
            'gif' => 'image/gif',
            'bmp' => 'image/bmp',
            'ico' => 'image/vnd.microsoft.icon',
            'tiff' => 'image/tiff',
            'tif' => 'image/tiff',
            'svg' => 'image/svg+xml',
            'svgz' => 'image/svg+xml',

            // archives
            'zip' => 'application/zip',
            'rar' => 'application/x-rar-compressed',
            'exe' => 'application/x-msdownload',
            'msi' => 'application/x-msdownload',
            'cab' => 'application/vnd.ms-cab-compressed',

            // audio/video
            'mp3' => 'audio/mpeg',
            'qt' => 'video/quicktime',
            'mov' => 'video/quicktime',

            // adobe
            'pdf' => 'application/pdf',
            'psd' => 'image/vnd.adobe.photoshop',
            'ai' => 'application/postscript',
            'eps' => 'application/postscript',
            'ps' => 'application/postscript',

            // ms office
            'doc' => 'application/msword',
            'rtf' => 'application/rtf',
            'xls' => 'application/vnd.ms-excel',
            'ppt' => 'application/vnd.ms-powerpoint',

            // open office
            'odt' => 'application/vnd.oasis.opendocument.text',
            'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
        );

        $ext = strtolower(array_pop(explode('.',$filename)));
        if (array_key_exists($ext, $mime_types)) {
            return $mime_types[$ext];
        }
        elseif (function_exists('finfo_open')) {
            $finfo = finfo_open(FILEINFO_MIME);
            $mimetype = finfo_file($finfo, $filename);
            finfo_close($finfo);
            return $mimetype;
        }
        else {
            return 'application/octet-stream';
        }
    }
}
?>

http://php.net/manual/en/function.mime-content-type.php

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/113666.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Navicat 15 激活补丁破解方法

    Navicat 15 激活补丁破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    132
  • DllImport的用法和解释

    DllImport的用法和解释

    2021年8月11日
    40
  • icem二维非结构网格划分_Ansys Icem CFD网格划分实例详解PDF及附件[通俗易懂]

    icem二维非结构网格划分_Ansys Icem CFD网格划分实例详解PDF及附件[通俗易懂]网格划分是CFD仿真计算中重要的一环,icem也是Ansys家族的王牌成员,虽然现在已被mesh以及fluentmesh追赶,但是依旧是学生时代主流的追求完美结构化网格的利器!学好icem对于拓结构的理解也会更深刻!这本书没找到原版的,只有影印版,看起来不是很舒服,但是有配套视频可以学习,也算慰藉。建议买本纸质版康康,虽然纸质版也不是很清晰,因为不是彩印的,所以凑活看吧!一、书籍简介名…

    2022年5月26日
    47
  • bt3使用_手机怎么下载视频到u盘上

    bt3使用_手机怎么下载视频到u盘上BT3U盘版下载软件类型:国产软件授权方式:免费软件界面语言:简体中文软件大小:783M文件类型:.iso运行环境:Win2003,WinXP,Win2000,Win9X软件等级:★★★★★发布时间:2010-12-26官方网址:http://www.backtrack-linux.org演示网址:http://www.backtrack-linux.org下载次数:

    2022年10月1日
    2
  • 利用群晖nas Docker平台安装qb(qbittorrent)实现PT/BT

    利用群晖nas Docker平台安装qb(qbittorrent)实现PT/BT利用群晖这个低功耗平台挂机上传/下载应该在合适不过了话不多说,我们赶紧开始我使用的是黑裙,系统的版本是DSM6.11、安装Docker(已经安装好的可以直接跳到第二步)点击套件中心→点击左侧全部→滚动到中间位置就能找到“Docker”(鲸鱼游轮的ICO好可爱)当然也可以直接在搜索栏里搜索Docker,都是可以的稍等片刻以后,点击左上角呼出“所有程序”会出现一个Docke…

    2022年10月11日
    2
  • JUnit4 jar包下载

    JUnit4 jar包下载JUnit4jar包链接:https://pan.baidu.com/s/112B-PaQvlTAzEXxHcpC9Sw密码:ktrn

    2022年5月14日
    85

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号