欢迎来到站长教程网!

PHP教程

当前位置:主页 > 网络编程 > PHP教程 >

PHP实现获取文件mime范例多种要领理会

时间:2021-05-05|栏目:PHP教程|点击:

本文实例报告了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获取文件mime范例Fileinfo等要领

前几天写到利用wordpress xmlrpc api长途宣布文章,假如当地处事器的文章库里某一篇待颁发的wordpress文章包括图片文件时,就会利用到WordPress上传文件的API metaWeblog.newMediaObject,该api需要提供文件的mime 范例。php如 何获取文件(图片)的mime 范例呢?最初远方博客利用php mime_content_type()函数,利用开拓用的ubuntu server lamp的默认设置测试后完全支持,返回了正确的文件mime type。可是将该API项目移植到Centos 5.2(内核2.6) LAMP情况时,呈现了如下错误提示:

Fatal error: Call to undefined function: mime_content_type()

最后查察了最新的php手册发明php mime_content_type()函数已经被废弃,虽然官方不推荐利用,并且需要颠末适当的php设置后才气利用。因此要获取图片或其他的文件的 MIME范例,Fatal error: Call to undefined function: mime_content_type()错误就有了以下几种办理方案。

mime_content_type()函数判定获取mime范例

假如对已被php 5.3.0废弃的mime_content_type()函数仍然情有独钟,那么可以对php举办设置启用magic_mime扩展。好比Centos下 利用phpinfo()查察php apache设置,查找到mime-magic,假如显示“--without-mime-magic”,则要编译php切换到”with-mime- magic“选 项。mime_content_type()函数还依赖于Apache httpd 的magic文件(mime_magic.magicfile),为了检测文件的MIME范例,必需设置奉告magic文件的地点,如'–with- mime-magic=/usr/share/file/magic.mime'。Windows情况下还需要在php.ini中添加:

mime_magic.magicfile = "$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:

image_type_to_mime_type()获取图片MIME范例

上一篇:php利用自带dom扩展举办元素匹配的道理理会

栏    目:PHP教程

下一篇:PHP const界说常量及global界说全局常量实例理会

本文标题:PHP实现获取文件mime范例多种要领理会

本文地址:www.jiaocheng88.com.cn/PHPjiaocheng/61988.html

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:584415406 | 邮箱:584415406#qq.com(#换成@)

Copyright © 2015-2020 小白站长教程网 版权所有 苏ICP备20040415号-3