php获取文件类型和文件信息的方法


Posted in PHP onJuly 10, 2015

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

<?php
$file = "php.txt";
//打开文件,r表示以只读方式打开
$handle = fopen($file,"r");
//获取文件的统计信息
$fstat = fstat($handle);
echo "文件名:".basename($file)."<br>";
//echo "文件大小:".round(filesize("$file")/1024,2)."kb<br>";
echo "文件大小:".round($fstat["size"]/1024,2)."kb<br>";
//echo "最后访问时间:".date("Y-m-d h:i:s",fileatime($file))."<br>";
echo "最后访问时间:".date("Y-m-d h:i:s",$fstat["atime"])."<br>";
//echo "最后修改时间:".date("Y-m-d h:i:s",filemtime($file))."<br>";
echo "最后修改时间:".date("Y-m-d h:i:s",$fstat["mtime"]);
?>

何为MIME类型,它是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问时,浏览器会自动使用指定应用程序来打开。
多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。

参考链接:php文件格式(mime类型)对照表 。

1、mime_content_type()函数判断获取mime类型
mime_content_type返回指定文件的MIME类型,用法:

echo mime_content_type ( 'php.gif' ) . "\n" ;
echo mime_content_type ( 'test.php' );

输出:
image/gif
text/plain

但是php 5.3.0已经将该函数废弃。如果仍想使用此函数,那么可以对php进行配置启用magic_mime扩展。

2、php Fileinfo 获取文件MIME类型(finfo_open)

PHP官方推荐mime_content_type()的替代函数是Fileinfo函数。PHP 5.3.0+已经默认支持Fileinfo函数(fileinfo support-enabled),不必进行任何配置即可使用finfo_open()判断获取文件MIME类型。用法:

$finfo = finfo_open(FILEINFO_MIME);
$mimetype = finfo_file($finfo, $filename);
finfo_close($finfo);

3、image_type_to_mime_type()获取图片MIME类型

如果需要判断MIME类型的文件只有图像文件,那么首先可以使用exif_imagetype()函数获取图像类型常量,再用image_type_to_mime_type()函数将图像类型常量转换成图片文件的MIME类型。
注意:需要在php.ini中配置打开php_mbstring.dll(Windows需要)和extension=php_exif.dll。

4、php上传文件获取MIME类型
如果使用php上传文件,检测上传文件的MIME类型,则可以使用全局变量$_FILES['uploadfile']['type'],由客户端的浏览器检测获取文件MIME类型。

5、通过文件扩展名判断文件类型

<?php 
$filename = "D:\\296.mid"; 
$file = fopen($filename, "rb"); 
$bin = fread($file, 2); //只读2字节 
fclose($file); 
$strInfo = @unpack("c2chars", $bin); 
$typeCode = intval($strInfo['chars1'].$strInfo['chars2']); 
$fileType = ''; 
switch ($typeCode) 
{ 
case 7790: 
$fileType = 'exe'; 
break; 
case 7784: 
$fileType = 'midi'; 
break; 
case 8297: 
$fileType = 'rar'; 
break; 
case 255216: 
$fileType = 'jpg'; 
break; 
case 7173: 
$fileType = 'gif'; 
break; 
case 6677: 
$fileType = 'bmp'; 
break; 
case 13780: 
$fileType = 'png'; 
break; 
default: 
echo 'unknown'; 
} 
echo 'this is a(an) '.$fileType.' file:'.$typeCode; 
?>

以上就是PHP 文件类型判断的几种方法,如果你有更好的方法,可以留言

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

PHP 相关文章推荐
十天学会php之第八天
Oct 09 PHP
PHP无限分类的类
Jan 02 PHP
那些年一起学习的PHP(一)
Mar 21 PHP
PHP exif扩展方法开启详解
Jul 28 PHP
PHP获取一个字符串中间一部分字符的方法
Aug 19 PHP
百度实时推送api接口应用示例
Oct 21 PHP
Laravel 5框架学习之用户认证
Apr 09 PHP
php正则去除网页中所有的html,js,css,注释的实现方法
Nov 03 PHP
PHP开发APP端微信支付功能
Feb 17 PHP
PHP长网址与短网址的实现方法
Oct 13 PHP
PHP实现的最大正向匹配算法示例
Dec 19 PHP
Codeigniter里的无刷新上传的实现代码
Apr 14 PHP
php中实现用数组妩媚地生成要执行的sql语句
Jul 10 #PHP
PHP中把对象数组转换成普通数组的方法
Jul 10 #PHP
codeigniter实现get分页的方法
Jul 10 #PHP
PHP基于phpqrcode生成带LOGO图像的二维码实例
Jul 10 #PHP
php基于Snoopy解析网页html的方法
Jul 09 #PHP
php生成固定长度纯数字编码的方法
Jul 09 #PHP
php随机获取金山词霸每日一句的方法
Jul 09 #PHP
You might like
php解析html类库simple_html_dom(详细介绍)
2013/07/05 PHP
php中call_user_func函数使用注意事项
2014/11/21 PHP
thinkphp四种url访问方式详解
2014/11/28 PHP
php的sso单点登录实现方法
2015/01/08 PHP
yii2多图上传组件的使用教程
2018/05/10 PHP
DHTML 中的绝对定位
2006/11/26 Javascript
用脚本调用样式的几种方法
2006/12/09 Javascript
JQuery 选择器 xpath 语法应用
2010/05/13 Javascript
从零开始学习jQuery (八) 插播:jQuery实施方案
2011/02/23 Javascript
鼠标移到div,浮层显示明细,弹出层与div的上边距左边距重合(示例代码)
2013/12/14 Javascript
使用jquery解析XML的方法
2014/09/05 Javascript
JavaScript中的ArrayBuffer详细介绍
2014/12/08 Javascript
分享2个jQuery插件--jquery.fileupload与artdialog
2014/12/26 Javascript
js实现右下角提示框的方法
2015/02/03 Javascript
基于Jquery和html5的7款个性化地图插件
2015/11/17 Javascript
基于JavaScript实现一定时间后去执行一个函数
2015/12/14 Javascript
JavaScript实现弹出DIV层同时页面背景渐变成半透明效果
2016/03/25 Javascript
用jQuery实现圆点图片轮播效果
2017/03/19 Javascript
如何重置vue打印变量的显示方式
2017/12/06 Javascript
详解Vue 全局引入bass.scss 处理方案
2018/03/26 Javascript
jQuery UI实现动画效果代码分享
2018/08/19 jQuery
微信小程序常用赋值方法小结
2019/04/30 Javascript
在vant 中使用cell组件 定义图标该图片和位置操作
2020/11/02 Javascript
python导出hive数据表的schema实例代码
2018/01/22 Python
Python3 利用requests 库进行post携带账号密码请求数据的方法
2018/10/26 Python
Pycharm如何打断点的方法步骤
2019/06/13 Python
python自动循环定时开关机(非重启)测试
2019/08/26 Python
VSCode中自动为Python文件添加头部注释
2019/11/14 Python
flask框架url与重定向操作实例详解
2020/01/25 Python
用CSS3绘制三角形的简单方法
2015/07/17 HTML / CSS
canvas进阶之贝塞尔公式推导与物体跟随复杂曲线的轨迹运动
2018/01/10 HTML / CSS
毕业大学生自荐信
2014/06/17 职场文书
2015年转正工作总结范文
2015/04/02 职场文书
个人工作违纪检讨书
2015/05/05 职场文书
基于angular实现树形二级表格
2021/10/16 Javascript
GO语言字符串处理函数之处理Strings包
2022/04/14 Golang