php实现获取文件mime类型的方法


Posted in PHP onFebruary 11, 2015

本文实例讲述了php获取文件mime类型的方法。分享给大家供大家参考。具体如下:

1.使用 mime_content_type 方法

string mime_content_type ( string $filename )

Returns the MIME content type for a file as determined by using information from the magic.mime file.  

<?php 
$mime_type = mime_content_type('1.jpg'); 
echo $mime_type; // image/jpeg 
?>

但此方法在 php5.3 以上就被废弃了,官方建议使用 fileinfo 方法代替。

2.使用 Fileinfo 方法 (官方推荐)

使用fileinfo需要安装php_fileinfo扩展。
如已安装可以在extension_dir目录下找到php_fileinfo.dll(windows),fileinfo.so(linux)
打开php.ini,把extension=php_fileinfo.dll前的";"去掉,然后重启apache。

<?php 
$fi = new finfo(FILEINFO_MIME_TYPE); 
$mime_type = $fi->file('1.jpg'); 
echo $mime_type; // image/jpeg 
?>

3.使用 image_type_to_mime_type 方法(只能处理图象类型)

使用exif_imagetype方法需要安装php_exif扩展,并需要安装php_mbstring扩展
如已安装可以在extension_dir目录下找到php_exif.dll(windows),exif.so(linux)
打开php.ini,把 extension=php_mbstring.dll, extension=php_exif.dll 前的","去掉,然后重启apache

<?php 
$image = exif_imagetype('1.jpg'); 
$mime_type = image_type_to_mime_type($image); 
echo $mime_type; // image/jpeg 
?>

Tips:如果使用文件名的后缀来判断,因为文件后缀是可以修改的,所以使用文件后缀来判断会不准确。

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

PHP 相关文章推荐
用PHP和ACCESS写聊天室(七)
Oct 09 PHP
浅谈PHP 闭包特性在实际应用中的问题
Oct 30 PHP
关于ob_get_contents(),ob_end_clean(),ob_start(),的具体用法详解
Jun 24 PHP
ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
Nov 05 PHP
PHP使用strtotime计算两个给定日期之间天数的方法
Mar 18 PHP
PHP Static延迟静态绑定用法分析
Mar 16 PHP
PHP计算数组中值的和与乘积的方法(array_sum与array_product函数)
Apr 01 PHP
php使用ftp实现文件上传与下载功能
Jul 21 PHP
ThinkPHP5+Layui实现图片上传加预览功能
Aug 17 PHP
Discuz不使用插件实现简单的打赏功能
Mar 21 PHP
在phpstudy集成环境下的nginx服务器下配置url重写
Dec 02 PHP
PHP查找一列有序数组是否包含某值的方法
Feb 07 PHP
php强制更新图片缓存的方法
Feb 11 #PHP
Laravel中使用自己编写类库的3种方法
Feb 10 #PHP
Laravel中使用阿里云OSS Composer包分享
Feb 10 #PHP
PHP实现Javascript中的escape及unescape函数代码分享
Feb 10 #PHP
PHP实现获取FLV文件的时间
Feb 10 #PHP
PHP中实现获取IP和地理位置类分享
Feb 10 #PHP
PHP实现的简单mock json脚本分享
Feb 10 #PHP
You might like
php继承中方法重载(覆盖)的应用场合
2015/02/09 PHP
静态的动态续篇之来点XML
2006/12/23 Javascript
jquery按回车提交数据的代码示例
2013/11/05 Javascript
js调试工具Console命令详解
2014/10/21 Javascript
使用Sticker.js实现贴纸效果
2015/01/28 Javascript
JavaScript对象参数的引用传递
2016/01/14 Javascript
BootStrap Table 分页后重新搜索问题的解决办法
2016/08/08 Javascript
老生常谈js中0到底是 true 还是 false
2017/03/08 Javascript
详解a标签添加onclick事件的几种方式
2019/03/29 Javascript
JQuery Ajax跨域调用和非跨域调用问题实例分析
2019/04/16 jQuery
JavaScript回调函数callback用法解析
2020/01/14 Javascript
微信小程序onShareTimeline()实现分享朋友圈
2021/01/07 Javascript
利用Python的装饰器解决Bottle框架中用户验证问题
2015/04/24 Python
Django框架中render_to_response()函数的使用方法
2015/07/16 Python
Python 探针的实现原理
2016/04/23 Python
对Python3 序列解包详解
2019/02/16 Python
Python 使用 attrs 和 cattrs 实现面向对象编程的实践
2019/06/12 Python
详解python中eval函数的作用
2019/10/22 Python
python统计文章中单词出现次数实例
2020/02/27 Python
基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解
2020/06/08 Python
python 爬取小说并下载的示例
2020/12/07 Python
美国创意礼品网站:UncommonGoods
2017/02/03 全球购物
美国球迷装备的第一来源:FOCO
2020/07/03 全球购物
项目经理的岗位职责
2013/11/23 职场文书
实用求职信范文分享
2013/12/25 职场文书
主持人演讲稿范文
2013/12/28 职场文书
竞争上岗演讲稿
2014/01/05 职场文书
应届毕业生如何写求职信
2014/02/16 职场文书
小学班主任寄语大全
2014/04/04 职场文书
关于责任的演讲稿
2014/05/20 职场文书
2014小学数学教师个人工作总结
2014/12/18 职场文书
普宁寺导游词
2015/02/04 职场文书
企业计划生育责任书
2015/05/09 职场文书
工程竣工验收申请报告
2015/05/15 职场文书
如何书写授权委托书?
2019/06/25 职场文书
SpringCloud Feign请求头删除修改的操作代码
2022/03/20 Java/Android