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 相关文章推荐
Mysql的常用命令
Oct 09 PHP
介绍php设计模式中的工厂模式
Jun 12 PHP
用PHP程序实现支持页面后退的两种方法
Jun 30 PHP
php空间不支持socket但支持curl时recaptcha的用法
Nov 07 PHP
PHP 提取图片img标记中的任意属性的简单实例
Dec 10 PHP
php输出指定时间以前时间格式的方法
Mar 21 PHP
PHP加密解密类实例分析
Apr 20 PHP
Smarty变量用法详解
May 11 PHP
Netbeans 8.2与PHP相关的新特性介绍
Oct 08 PHP
laravel-admin的多级联动方法
Sep 30 PHP
PHP框架实现WebSocket在线聊天通讯系统
Nov 21 PHP
php微信小程序解包过程实例详解
Mar 31 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
递归列出所有文件和目录
2006/10/09 PHP
PHP实现linux命令tail -f
2016/02/22 PHP
PHP中仿制 ecshop验证码实例
2017/01/06 PHP
thinkPHP5框架实现多数据库连接,跨数据连接查询操作示例
2019/05/29 PHP
TFDN图片播放器 不错自动播放
2006/10/03 Javascript
Javascript实例教程(19) 使用HoTMetal(7)
2006/12/23 Javascript
利用jQuery插件扩展识别浏览器内核与外壳的类型和版本的实现代码
2011/10/22 Javascript
JQuery中对Select的option项的添加、删除、取值
2013/08/25 Javascript
使用javascript实现页面定时跳转总结篇
2013/09/21 Javascript
获取非最后一列td值并将title设为该值的方法
2013/10/30 Javascript
JS获取地址栏参数的几种方法小结
2014/02/28 Javascript
轻松使用jQuery双向select控件Bootstrap Dual Listbox
2015/12/13 Javascript
基于JS实现移动端访问PC端页面时跳转到对应的移动端网页
2020/12/24 Javascript
再谈Javascript中的异步以及如何异步
2016/08/19 Javascript
js实现可旋转的立方体模型
2016/10/16 Javascript
nodejs+mongodb+vue前后台配置ueditor的示例代码
2018/01/02 NodeJs
VUE解决微信签名及SPA微信invalid signature问题(完美处理)
2019/03/29 Javascript
Vue使用.sync 实现父子组件的双向绑定数据问题
2019/04/04 Javascript
微信小程序发布新版本时自动提示用户更新的方法
2019/06/07 Javascript
通过vue刷新左侧菜单栏操作
2020/08/06 Javascript
Vue触发input选取文件点击事件操作
2020/08/07 Javascript
Python读写Redis数据库操作示例
2014/03/18 Python
Linux RedHat下安装Python2.7开发环境
2017/05/20 Python
Python环境搭建之OpenCV的步骤方法
2017/10/20 Python
使用memory_profiler监测python代码运行时内存消耗方法
2018/12/03 Python
python实现烟花小程序
2019/01/30 Python
python 中pyqt5 树节点点击实现多窗口切换问题
2019/07/04 Python
PyTorch使用cpu加载模型运算方式
2020/01/13 Python
详解Django3中直接添加Websockets方式
2020/02/12 Python
使用 Python 遍历目录树的方法
2020/02/29 Python
如何在python中实现线性回归
2020/08/10 Python
美国领先的个性化礼品商城:Personalization Mall
2019/07/27 全球购物
澳大利亚有机化妆品网上商店:The Well Store
2020/02/20 全球购物
同学会邀请函模板
2015/01/30 职场文书
2015年乡镇工作总结范文
2015/04/22 职场文书
分位数回归模型quantile regeression应用详解及示例教程
2021/11/02 Python