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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 操作系统实验五 虚拟存储器管理

    实验五虚拟存储器管理一、实验目的1、理解虚拟存储器概念。2、掌握分页式存储管理地址转换和缺页中断。二、实验内容与基本要求1、模拟分页式存储管理中硬件的地址转换和产生缺页中断。2、用先进先出页面调度算法处理缺页中断。三、实验报告内容1、分页式存储管理和先进先出页面调度算法原理。a.分页式存储管理原理  在存储器管理中,连续分配方式会形成许多“碎片”,虽然可通过“紧凑”方法将

    2022年4月7日
  • 什么是Hackbar?

    什么是Hackbar?**什么是Hackbar?**Hackbar是一个Firefox的插件,它的功能类似于地址栏,但是它里面的数据不受服务器的相应触发的重定向等其它变化的影响.有网址的载入于访问,联合查询,各种编码,数据加密功能.这个Hackbar可以帮助你在测试SQL注入,XSS漏洞和网站的安全性,主要是帮助开发人员做代码的安全审计,检查代码,寻找安全漏洞…

    2022年4月30日
  • ubuntu重启nginx_ubuntu配置nginx

    ubuntu重启nginx_ubuntu配置nginx大家好,我是极智视界,本文介绍一下ubuntu安装nginx的方法。

    2022年9月19日
  • php递归算法经典实例_一文读懂递归算法

    php递归算法经典实例_一文读懂递归算法本篇文章主要介绍PHP递归算法详解,感兴趣的朋友参考下,希望对大家有所帮助。遇到需要设计树节点的数据库结构,以及需要读出来的树节点数据结构!大家是否会选择用数据库的查询方式来获取树结构呢?//曾经的数据库查询获取方式$res=$this->db->query(“select*frommenuwherepid=0”);foreach($resas$k=>$v)…

    2022年8月11日
  • imx8开发板_安卓反编译教程

    imx8开发板_安卓反编译教程按照官方手册,在ubuntu14.04上搭建环境sudoapt-getuuiduuid-devsudoapt-getzlib1g-devliblz-devsudoapt-getliblzo2-2liblzo2-devsudoapt-getlzopsudoapt-getgit-corecurlsudoapt-getu-boot-toolssudo…

    2022年10月7日
  • 定时器循环彩灯实验c语言,定时器实验循环彩灯实验-单片机原理及应用实验报告…

    定时器循环彩灯实验c语言,定时器实验循环彩灯实验-单片机原理及应用实验报告…定时器实验循环彩灯实验-单片机原理及应用实验报告计算机与信息工程学院设计性实验报告专业:通信工程年级/班级:2011级2013—2014学年第一学期课程名称单片机原理及应用指导教师岳明本组成员学号姓名实验地点计科楼214实验时间周五3-4节项目名称定时器实验-循环彩灯实验实验类型设计性一、实验目的:1、学习8031内部计数器的使用和编程方法。2、进一步掌握中断…

    2022年7月16日

发表回复

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

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