本文实例讲述了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.
<";"去掉,然后重启apache。<","去掉,然后重启apache<"$PHP_INSTALL_DIRmagic.mime"其中$PHP_INSTALL_DIR是你的php安装目录。在有些LAMP环境下,这个mime_magic文件不一定存在或可读,还要另外下载。另外 有些虚拟主机为了安全考虑,即使是有with-mime-magic也不一定会返回正确的mime类型,有时候会返回空字符串。因此,就凭 mime_content_type()函数已经被废弃这一项,就不推荐使用该方法获取文件MIME类型了。
php Fileinfo 获取文件MIME类型(finfo_open)
PHP官方推荐mime_content_type()的替代函数是Fileinfo函数。PHP 5.3.0+已经默认支持Fileinfo函数(fileinfo support-enabled),不必进行任何配置即可使用finfo_open()判断获取文件MIME类型。Centos 默认安装的LAMP环境php版本还是PHP5.2.6,低于5.3.0版本则可能出现类似错误提示:PHP Fatal error: Call to undefined function finfo_open() in…。因为之前的php版本,需要加载magic_open类,fileinfo函数属于PECL扩展,启用fileinfo PECL扩展才能检测MIME类型。所以有两种途径使用fileinfo获取文件的MIME类型。
将php版本升级到5.3.0以上。php官方也已经不再维护和更新这个fileinfo pecl扩展包,所以升级是最好的办法。
安装fileinfo pecl扩展,Centos linux 如何安装fileinfo:在Centos下面安装fileinfo命令(rpm):yum install php-pecl-Fileinfo。或使用源码安装编译:
cd /usr/src/down && wget http://pecl.php.net/get/Fileinfo-1.0.4.tgz
tar zxvf Fileinfo-1.0.4.tgz
cd /usr/src/down/Fileinfo-1.0.4 && phpize && ./configure && make && make install
还可以使用网上流传较多的一种方法,Linux通过phpize使用pecl指令来安装fileinfo:
- 若没有phpize指令,需要先安装。#phpize检测若提示”No command ‘phpize' found”,则需先安装phpize;
- 下载安装php-devel(php5-dev)的rpm,安装phpize;
- service httpd restart 或 reboot;
- 命令 pecl install fileinfo 安装fileinfo扩展。
- 安装完毕,/usr/lib/php/module目录下多了fileinfo.so文件,/usr/share/file目录下多了magic.mime和magic两个文档
- 修改php.ini配置:加入 extension=”fileinfo.so”
- service httpd restart
- Windows服务器下安装fileinfo相似,php.ini:extension=php_fileinfo.dll
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。phpinfo()“–enable-exif”。首先exif_imagetype返回的是图像类型常量(Imagetype Constants),如IMAGETYPE_GIF、IMAGETYPE_JPEG、IMAGETYPE_PNG等。
<"D:farleeinfo.jpg"); //本地路径或远程图片地址均可 IMAGETYPE_GIF// $image = exif_imagetype("http://farlee.info/wp-content/images/rss_feedsky.gif"); $mime = image_type_to_mime_type($image); echo $mime; // 输出image/jpeg ?>php上传文件获取MIME类型
如果使用php上传文件,检测上传文件的MIME类型,则可以使用全局变量$_FILES['uploadfile']['type'],由客户端的浏览器检测获取文件MIME类型。
Centos 系统或其他环境下若都不方便获取文件MIME类型的话,还有最后一种绝对可行的方法,就是读取文件名后缀,根据后缀名一一对应文件的MIME类型,具体可以参考php手册上的这条评论。当然这种方法检测到的MIME文件类型不一定是非常准确的。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
标签:PHP,获取,mime类型
无为清净楼资源网 Design By www.qnjia.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 群星《继续微笑致敬许冠杰》[低速原抓WAV+CUE]
- 潘秀琼.2003-国语难忘金曲珍藏集【皇星全音】【WAV+CUE】
- 林东松.1997-2039玫瑰事件【宝丽金】【WAV+CUE】
- 谭咏麟.2022-倾·听【环球】【WAV+CUE】
- 4complete《丛生》[320K/MP3][85.26MB]
- 4complete《丛生》[FLAC/分轨][218.01MB]
- 羽泉《给未来的你&天黑天亮》[WAV+CUE][968M]
- 庄心妍《我也许在等候》[低速原抓WAV+CUE]
- 王雅洁《小调歌后2》[原抓WAV+CUE]
- 中国武警男声合唱团《辉煌之声1天路》[DTS-WAV分轨]
- 紫薇《旧曲新韵》[320K/MP3][175.29MB]
- 紫薇《旧曲新韵》[FLAC/分轨][550.18MB]
- 周深《反深代词》[先听版][320K/MP3][72.71MB]
- 李佳薇.2024-会发光的【黑籁音乐】【FLAC分轨】
- 后弦.2012-很有爱【天浩盛世】【WAV+CUE】