php 获取 mime type 类型,fileinfo扩展
背景:
version < php-5.3 没有API能够查看文件的 mime_type, 故需要编译扩展 fileinfo 来扩展PHP的API(finfo_*系列函数)。php-5.3 以后将fileinfo 拉入的官方发行包中,将不存在此问题。
知识准备:
MIME type的缩写为(Multipurpose Internet Mail Extensions)代表互联网媒体类型(Internet media type),MIME使用一个简单的字符串组成,最初是为了标识邮件Email附件的类型,在html文件中可以使用content-type属性表示,描述了文件类型的互联网标准。
MIME类型能包含视频、图像、文本、音频、应用程序等数据。为了检测文件的MIME类型,必须配置告知magic文件的地址(如果不指定,默认使用apache 的magic地址)
mime_magic extensionYou must compile PHP with the configure switch --with-mime-magic to get support for mime-type functions. The extension needs a copy of the simplified magic file that is distributed with the Apache httpd. 所以php 在apache mod 模式下的 $_FILE['img']['type'] 字段数据依赖于Apache 发布的相应版本的 magic file.exif extensionWith the exif extension you are able to work with image meta data. For example, you may use exif functions to read meta data of pictures taken from digital cameras by working with information stored in the headers of the JPEG and TIFF images.
软件准备:
php: php-5.2.14
Fileinfo: Fileinfo-1.0.4.tgz
file: file-5.20.tar.gz
1、file 安装
wget ftp://ftp.astron.com/pub/file/file-5.15.tar.gz
tar zxf file-5.20.tar.gz
cd file-5.20/
./configure --prefix=/usr/local/services/file-5.20
make
make install
2、Fileinfo扩展编译安装
wget http://pecl.php.net/get/Fileinfo-1.0.4.tgz
tar zxf Fileinfo-1.0..tgz
cd Fileinfo-1.0./
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-fileinfo=/usr/local/services/file-5.20/
make
#拷贝fileinfo.so 到php.ini 中定义的 extension_dir
cp fileinfo.so /usr/local/php/extensions/ #修改php.ini
echo "extension=fileinfo.so" >> /usr/local/php/lib/php.ini
3、验证
php -m | grep fileinfo
fileinfo
备注:
1、安装软件注意查看 ./configure --help 其中会指出库或头文件的依赖
2、扩展移植,查看依赖, 移植需要注意对:libmagic.so.1 的依赖
ldd /usr/local/php/extensions/fileinfo.so
linux-vdso.so.1 => (0x00007fff9b7ff000)
libmagic.so.1 => /usr/local/lib/libmagic.so.1 (0x00007f8493582000)
libc.so.6 => /lib64/libc.so.6 (0x00007f8493342000)
libz.so.1 => /lib64/libz.so.1 (0x00007f849322d000)
/lib64/ld-linux-x86-64.so.2 (0x00007f84937a4000)
php 获取 mime type 类型,fileinfo扩展的更多相关文章
- mime type 类型名字应该用多长的字段?
在使用 FastAdmin 时有 mimetype 字段使用了 50 长度,有小伙伴反应,不够. 在 Linux 服务器上时 xlsx 文件的 mimetype 是 application/vnd. ...
- 学习PHP中Fileinfo扩展的使用
今天来学习的这个扩展其实现在也已经是标配的一个扩展了,为什么呢?因为 Laravel 框架在安装的时候它就是必须的一个扩展,没有打开它的话,连 Laravel 框架都是无法使用的. Fileinfo ...
- MIME Type介绍 Content-Type 各种定义
多用途互联网邮件扩展(MIME,Multipurpose Internet Mail Extensions)是一个互联网标准,它扩展了电子邮件标准,使其能够支持非ASCII字符.二进制格式附件等多种格 ...
- File upload - MIME type
Your goal is to hack this photo galery by uploading PHP code.Retrieve the validation password in the ...
- php获取文件mime类型Fileinfo等方法
前几天写到使用wordpress xmlrpc api远程发布文章,如果本地服务器的文章库里某一篇待发表的wordpress文章包含图片文件时,就会使用到WordPress上传文件的API metaW ...
- [笔记] C# 如何获取文件的 MIME Type
MIME Type 为何物: MIME 参考手册 svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types 常规方式 对于有文件后 ...
- js 获取input type="file" 选择的文件大小、文件名称、上次修改时间、类型等信息
文件名的传递 ---全路径获取 $('#file').change(function(){ $('#em').text($('#file').val()); }); 文件名的传递 ---只获取文件名 ...
- C#获取文件的Content-Type(MIME Type)的方法
使用静态类MimeMapping(需要.NET Framework 4.5及以后的支持) string fileName = "D:\myfile.txt"; var conten ...
- windows环境开启PHP fileinfo扩展
fileinfo作用:本模块中的函数通过在文件的给定位置查找特定的 魔术 字节序列 来猜测文件的内容类型以及编码(通俗来讲就是获取文件的MIME信息) 开启PHP fileinfo扩展的方法: 1.下 ...
随机推荐
- windows对象 document对象 的一些操作 9.23
函数: 四要素 1.返回类型2.函数名3.参数列表4.函数体 window . 对象 opener 打开当前窗口的源窗口 alert(window.opener); open( ) 例子: ...
- Red Hat6设置使用CentOS的yum源
环境查看 red hat系统使用自己默认的yum源未注册在使用yum安装软件的时候会出现以下错误提示 可以修改成centos的yum源 卸载yum软件 rpm -qa|grep yum|xargs r ...
- ==和equal()的区别
“==”比较的是对象引用的地址相不相同 “equal()”比较的是内容是否相等
- IO 流小记录
File类 构造函数: FIle file = new File(path); 常用函数: 是否存在: file.exists() 文件名: file.getName() 父目录: file.ge ...
- [No0000105]java sdk 开发环境变量powershell 自动配置脚本
# 设置Java SDK 环境变量 $softwares = Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Unin ...
- Google 的 OKR 制度与KPI 有什么不同?
https://mp.weixin.qq.com/s/aMGJvPPBA9d2uq8DOi3xFg
- Mac上安装使用MYSQL以及Navicat数据库管理和PHP服务器配置
1.Apache服务器 Mac OS X内置Apache服务器,但默认没有启动 查看Apache版本: sudo apachectl -v 启动.关闭.重启Apache: sudo apachec ...
- [knowledge] 停止等待协议
再读TCP/IP详解 说到流量控制, 可能便涉及了两方面 1. 停止等待协议. https://baike.baidu.com/item/%E5%81%9C%E6%AD%A2%E7%AD%89%E5% ...
- 内部排序->交换排序->起泡排序
文字描述 首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序(L.r[1].key>L.r[2].key),则将两个记录交换位置,然后比较第二个记录和第三个记录的关键字.依次类推,直 ...
- Matlab中导入文本文件中的数据 矩阵合并 以及C++中删除文件操作
今天用到了Matlab读取文本文件中按照一定格式存储好的数据,然后进行后续的分析计算等,因此涉及到Matlab的文件读取,记录在这里,供以后查阅: fid = fopen('train.set', ' ...