finfoopen需要什么扩展 php_finfo_open

用户评论:

[#1]

Anonymous [2013-07-04 19:41:50]

For most common image files:

if ($fh) {$bytes6=fread($fh,6);fclose($fh);

if ($bytes6===false) returnfalse;

if (substr($bytes6,0,3)=="\xff\xd8\xff") return'image/jpeg';

if ($bytes6=="\x89PNG\x0d\x0a") return'image/png';

if ($bytes6=="GIF87a"||$bytes6=="GIF89a") return'image/gif';

return'application/octet-stream';

}

returnfalse;

}?>

[#2]

illusivefingers at gmail dot com [2012-02-06 00:53:36]

I am running Windows 7 with Apache.  It took hours to figure out why it was not working.

First, enable the php_fileinfo.dll extension in you php.ini. You'll also need the four magic files that are found in the following library:

http://sourceforge.net/projects/gnuwin32/files/file/4.23/file-4.23-bin.zip/download

An environment variable or a direct path to the file named "magic" is necessary, without any extension.

Then, make sure that xdebug is either turned off or set the ini error_reporting to not display notices or warnings for the script.

Hope this saves someone a few hours of frustration!

[#3]

olivier dot berger at it-sudparis dot eu [2011-03-09 12:02:24]

On my Debian squeeze system, the path needed is like :

$finfo= newfinfo(FILEINFO_MIME,"/usr/share/misc/magic.mgc");?>

[#4]

franssen dot roland at gmail dot com [2010-05-11 00:23:30]

Notice FileInfo::__construct() has strange behavior in PHP 

$fileInfo= newfinfo(FILEINFO_MIME,null);?>

Expected result:

----------------

object(finfo)#2 (0) { }

Actual result:

--------------

Warning: finfo::finfo(): Failed to load magic database at ''. in *** on line ***

object(finfo)#2 (0) { }

See http://bugs.php.net/bug.php?id=51732

[#5]

mark at dynom dot nl [2008-11-09 12:34:08]

It seems there is quite some inconsistency in distributions and loading of magic files.

On Archlinux, the file is located here:

/usr/share/misc/file/magic.mgc

But this:

$fi= newfinfo(FILEINFO_MIME,'/usr/share/misc/file/magic');$fi->file('/tmp/fubar.txt');?>

Actually segfaults, where if I type the full name (including the file extension:)

$fi= newfinfo(FILEINFO_MIME,'/usr/share/misc/file/magic.mgc');// added ".mgc"$fi->file('/tmp/fubar.txt');?>

It works as expected, so I guess something goes wrong with "A .mime and/or .mgc suffix is added if needed."

[#6]

php at brudaswen dot de [2008-09-15 03:13:53]

Since it costed me some time to find the needed magic database files for Windows, just a hint:

The last release of the GnuWin32 project with both needed files (magic and magic.mime) currently was "file-4.23".

All releases after 4.23 to 4.25-1 did not contain both needed files.

Hope that helps.

[#7]

dario dot borreguero at gmail dot com [2008-04-16 03:15:42]

Platform: WinXP-SP2, PHP5.2.5, MySQL 5.0, Apache 2.2.8

After reading former notes, I wasn't able to load my magic database: 'magic.mime' file (donwloaded from GnuWin32 project, zipped with the binary files v4.21). I always got an invalid $finfo object or finfo_open(...) returned FALSE.

In order to be able to load the 'magic.mime' file, Fileinfo library (bundled in PHP5.2.5) also requires 'magic' file.

For example:

1. Database:

c:\php\magic.mime

c:\php\magic

2. PHP Code:

$filname='c:\php\php.ini';$finfo= newfinfo(FILEINFO_MIME,'c:\php\magic');

if (!$finfo) returnfalse;

echo$finfo->file($filename);?>

For further info see: http://pecl.php.net/bugs/bug.php?id=7555

Pay attention to comments added by 'christophe dot charron dot xul at gmail dot com'

NOTE: Before upgrading to PHP5.2.5, I was working with PHP5.2.1 and it only required 'magic.mime' file.

[#8]

php at kingsquare dot nl [2008-01-23 07:41:40]

The current version (1.04) doesnt support a different mime.magic database than the server default.

(the documentation is thus not correct)

Ubuntu default location is '/usr/share/file/magic'. In order for the examples to work all finfo_open()-commands must be issued with the extra location accordingly:

$file="/path/to/file.jpg";$handle=finfo_open(FILEINFO_MIME,'/usr/share/file/magic');$mime_type=finfo_file($handle,$file);?>

[#9]

ian at createanet dot co dot uk [2007-11-02 08:50:55]

Couldn't get finfo to return the mimetype in the way expected so i made a function to do it with system()

if (is_array($output) ) {$output=$output[0];

}

return$output;

}?>

hope it works for other people too

[#10]

tularis at php dot net [2007-05-06 12:55:55]

On Windows systems people might find that this always returns "application/x-dpkg".

There are 2 ways of solving this problem:

1. Get the mime-magic database file from GnuWin32 at 

2. You can manually "fix" the mime-magic file by editing it and escaping all lines starting with !, thus changing each one to \!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值