- 浏览: 1612972 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (603)
- T_java (145)
- T_script&ASP (51)
- T_C/C++ (25)
- T_PowerBuilder (11)
- T_Database (53)
- T_odoo (7)
- T_应用服务器 (50)
- T_专_条形码 (6)
- T_专_负载均衡器 (4)
- T_操作系统 (94)
- T_信息安全 (41)
- T_专_搜索引擎 (14)
- T_L_PHP (58)
- T_L_Delphi (18)
- T_L_.NET、C#、VisualStudio (25)
- T_L_Objective-C (6)
- T_移动开发 (53)
- T_网络 (109)
- T_大数据 (2)
- T_嵌入式 (2)
- T_小众技术 (24)
- T_未分类 (58)
- L_旅游印记 (1)
- L_生活随笔 (48)
- L_中国文化 (18)
- L_户外与生存 (0)
最新评论
-
csbean4004:
不知道哪传来得恶习,发帖子不好好发,故意弄错一些东西,很讨厌
让HTML5支持后置摄像头 -
withthewind:
终于找到一个可以用的了。。。
如何用VBA取得Word文档中的标题前面的序号 -
busbby:
兄弟,无法下载,说文件不完整
一个好用的Outlook ost格式文件转pst文件的工具 -
yijavakevin:
密码啊~解压密码多少?
一个二维条形码组件 -
vipbooks:
你给的那个链接根本无法下载,跳到官网看了下最新版12M,但点下 ...
十步以内完成精细web打印
前几天在修改一个php的东西,有一个地方需要检测文件的MIME类型,但服务器报错:
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_DIR\magic.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等。
<?php
$image = exif_imagetype("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文件类型不一定是非常准确的。
另外,有人写了一个替代函数:
http://chrisjean.com/2009/02/14/generating-mime-type-in-php-is-not-magic/
发表评论
-
来算google的可视化编程工具——Blockly,不仅仅是玩具
2017-10-16 21:34 33162Blockly - 来自Google的可 ... -
十步以内完成精细web打印
2017-06-21 11:44 7390注意: 康虎云报表组 ... -
浏览器端精准打印或套打组件
2017-01-18 13:05 6705注意: 康虎云报表 ... -
如何在palcedoler中放置图标
2016-09-10 09:52 646如何在H5的palceholder中设置一个图标? ... -
通过 HTTP 头进行 SQL 注入(转)
2015-12-11 10:10 3263在漏洞评估和渗透测试中,确定目标应用程序的输入向量是 ... -
微信公众号怎样获取用户基本信息(含是否已关注)
2015-06-15 13:53 7150没时间多写,直接上代码。 第一步:获取code,其中 ... -
如何为WordPress做安全防护? (转)
2014-12-18 09:38 1190最近看了infosec 出品的《Protecting Wo ... -
百度地图坐标与google地图、腾讯地图等相互转换
2014-11-12 11:22 2523由于百度地图在GCJ02协议的基础上又做了一次处理,变为 ... -
PHP编译过程中常见错误信息的解决方法
2014-11-08 16:13 1122在CentOS编译PHP5的时候有时会遇到以下的一些错误信息 ... -
windows下用c写php扩展(加密解密php源代码)
2014-11-07 23:05 1339首先用hello world试手一下。 下载php源码包 ... -
在Windows下写PHP的C扩展
2014-11-07 22:55 730安装好如下软件: 1. VC++ 6 2. php二进 ... -
PhpED v9专业版 关于破解过期的解决方案
2014-10-18 23:15 931最近,自己机器上的 PhpED突然出问题了,启动后过好久, ... -
记录一个开源的PHP代码加密模块
2014-06-24 15:54 1074https://github.com/liexusong/ph ... -
一个比较隐蔽的php马
2013-12-10 11:01 967事情是这样的,朋友的网站的利用各种查找后门的工具都没有发现p ... -
使用 P3P 规范让 IE 跨域接受第三方 cookie(转)
2013-10-16 19:13 1580使用 P3P 规范让 IE 跨 ... -
PhpServlet--让php与jsp一起跑
2013-06-01 00:29 1054PhpServlet Introduction If ... -
一个用php实现的把服务器的数据库转成JDBC访问的工具(JDBC)
2013-05-31 23:33 1148一个用php实现的把服务器的数据库转成JDBC访问的工具,名 ... -
php与java混搭
2013-05-31 19:30 1036Resin公司搞了一个用java实现的php运行环境,类似于 ... -
一个PHP的开源流媒体服务系统(PHP Webcam Live Streaming)
2013-05-31 18:48 3522http://sourceforge.net/proj ... -
AES加密算法实现
2013-04-04 20:40 2006http://en.wikipedia.org/wiki/AE ...
相关推荐
Fatal error: Call to undefined function curl_init()解决方法 在 PHP 编程中,curl_init() 函数是一个非常重要的函数,它用于初始化一个 cURL 会话,以便在 PHP 应用程序中实现网络请求和数据交换。然而,在某些...
复制 php_sockets.dll 到ext目录 修改php.ini: extension=php_sockets.dll php4ts.dll php5ts.dll php_mime_magic.dll复制到C:\winnt\system32文件夹。 服务器
### PHP中连接MySQL时出现Fatal error: Call to ...通过以上步骤,您应该能够解决“Fatal error: Call to undefined function mysql_connect()”的问题。如果仍然遇到问题,请检查所有配置细节,确保没有遗漏任何步骤。
通过以上步骤,你应该能够解决"Call to undefined function odbc_connect"的问题,并成功建立PHP通过ODBC到数据库的连接。在处理这类问题时,理解ODBC的工作原理以及如何配置PHP和数据库系统之间的桥梁至关重要。
不用重启电脑.txt”可能包含了详细步骤来指导你如何添加环境变量,而“1.Fatal error Call to undefined function curl_init().txt”可能是对错误的详细描述或者解决方案的记录。“2.php.ini中extension = ...
标题中提到的“PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()”是指在PHP编程过程中遇到的一个致命错误,错误提示表明尝试调用了一个未定义的函数“bcmul()”。解决这个问题通常需要确保服务器上安装了包含...
在网上下载了一个模拟登陆discuz论坛的php程序范例,试运行时出现...这样的语句,出现Call to undefined function curl_init()的错误提示。 解决方法如下: 1、在php.ini中找到extension=php_curl.dll,去掉前面的,ph
加载sklearn库有可能遇到Intel MKL FATAL ERROR: Cannot load mkl_intel_thread.dll 问题,解决卸载掉numpy,scipy,sklearn三个库重新安装,资源的版本为py35,cpu,64位,全程分别为numpy-1.15.4+mkl-cp35-cp35m-win_...
之前网上的解决方法如下: 1、在php.ini中开启curl扩展 2、将php目录下的libeay32.dll、ssleay32.dll、php5ts.dll拷贝到c:\windows\system32里面 (还有一种方法是说在httpd.conf中加上动态链接库,如:LoadFile d:/...
在编程和软件开发中,我们经常遇到编译错误,这些错误是由于各种原因导致的,例如缺少必要的头文件或库。在本例中,我们关注的错误是“fatal error: boostdesc_bgm.i: No such file or directory”,这通常意味着在...
Fatal error: Class ‘COM’ not found in XXXXXXXXX 没发现 COM 类,php代码主要是调用一些系统的信息,初想应该是php没配置好,在stackoverflow找到答案,是讨论xampp的,要延伸开来,我加了几个要点: ★ php 根...
1. 自定义参数:与标准CCI相比,该脚本可能提供了更多的自定义设置,让用户可以根据自己的交易风格调整阈值、周期和其他参数。 2. 信号指示:可能包含了买入/卖出信号提示,以图形或声音等形式提醒交易者。 3. 动态...
在编程过程中,我们时常会遇到各种编译错误,其中一种比较棘手的错误是"collect2: fatal error: ld terminated with signal 11 [Segmentation fault], core dumped"。这个错误通常发生在尝试使用g++或gcc编译C++或C...
fatal error: pcre2.h: No such file or directory 27 | #include "pcre2.h" 安装swoole遇到错误,把pcre2.h 放到、usr/include下
解决fatal:remote error:You can’t push to git://github.com/username/*.git问题的办法 今天Git push的时候 fatal:remote error: You can't push to git://github.com/username/*.git Use git@github....
- **Java 版本**: UEditor 1.2.5 提供了与 Java 后端集成的方案,通过Servlet接口处理上传文件、图片等操作,确保前后端数据交互的安全性和稳定性。 - **.NET 版本**: 对于.NET开发者,UEditor 提供了与 ASP.NET ...
在"Linux课件附习题讲解及试题"这个资源中,我们能够深入学习Linux的基础知识,掌握其核心概念和常用命令,从而提升我们的系统管理能力和问题解决技巧。 一、Linux基础 1. Linux发行版:Linux并不是单一的操作系统...