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 相关文章推荐
Get或Post提交值的非法数据处理
Oct 09 PHP
PHP 5.3.1 安装包 VC9 VC6不同版本的区别是什么
Jul 04 PHP
PHP 读取Postgresql中的数组
Apr 14 PHP
探讨fckeditor在Php中的配置详解
Jun 08 PHP
php float不四舍五入截取浮点型字符串方法总结
Oct 28 PHP
php的array数组和使用实例简明教程(容易理解)
Mar 20 PHP
又拍云异步上传实例教程详解
Apr 19 PHP
php实现图片以base64显示的方法
Oct 13 PHP
浅析PHP数据导出知识点
Feb 17 PHP
PHP实现的分解质因数操作示例
Aug 01 PHP
Laravel框架源码解析之模型Model原理与用法解析
May 14 PHP
PHP后门隐藏的一些技巧总结
Nov 04 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读取纯真ip数据库使用示例
2014/01/26 PHP
php简单实现发送带附件的邮件
2015/06/10 PHP
PHP+apc+ajax实现的ajax_upload上传进度条代码
2016/01/25 PHP
完美解决phpdoc导出文档中@package的warning及Error的错误
2016/05/17 PHP
php版微信公众账号第三方管理工具开发简明教程
2016/09/23 PHP
PHP添加文字水印或图片水印的水印类完整源代码与使用示例
2019/03/18 PHP
jQueryUI如何自定义组件实现代码
2010/11/14 Javascript
jquery.cvtooltip.js 基于jquery的气泡提示插件
2010/11/19 Javascript
关于JS判断图片是否加载完成且获取图片宽度的方法
2013/04/09 Javascript
JS实现清除指定cookies的方法
2014/09/20 Javascript
js使用循环清空某个div中的input标签值
2014/09/29 Javascript
jquery 获取 outerHtml 包含当前节点本身的代码
2014/10/30 Javascript
Vuejs第九篇之组件作用域及props数据传递实例详解
2016/09/05 Javascript
js 中文汉字转Unicode、Unicode转中文汉字、ASCII转换Unicode、Unicode转换ASCII、中文转换
2016/12/06 Javascript
深入理解Javascript箭头函数中的this
2017/02/13 Javascript
PHP实现本地图片上传和验证功能
2017/02/27 Javascript
Vue-Router模式和钩子的用法
2018/02/28 Javascript
微信小程序保存图片到相册权限设置
2020/04/09 Javascript
[23:18]Spirit vs Liquid Supermajor小组赛A组 BO3 第二场 6.2
2018/06/03 DOTA
Python实现简单网页图片抓取完整代码实例
2017/12/15 Python
python定向爬虫校园论坛帖子信息
2018/07/23 Python
将string类型的数据类型转换为spark rdd时报错的解决方法
2019/02/18 Python
详解Selenium+PhantomJS+python简单实现爬虫的功能
2019/07/14 Python
Python利用WMI实现ping命令的例子
2019/08/14 Python
多个python文件调用logging模块报错误
2020/02/12 Python
python字典的值可以修改吗
2020/06/29 Python
The North Face北面荷兰官网:美国著名户外品牌
2019/10/16 全球购物
造型师求职自荐信
2013/09/27 职场文书
创先争优制度
2014/01/21 职场文书
《威尼斯的小艇》教学反思
2014/02/17 职场文书
先进事迹报告会主持词
2014/04/02 职场文书
小学生迎国庆演讲稿
2014/09/05 职场文书
房屋出售授权委托书
2014/10/12 职场文书
放假通知格式
2015/04/14 职场文书
2015年餐厅服务员工作总结
2015/04/23 职场文书
先进工作者主要事迹材料
2015/11/03 职场文书