我在windows7 (Apache: 2.4.9, PHP: 5.5.12)下使用wampserver.com的当前wamp。文件上传脚本与文件信息功能有问题。麻烦,我没有与linux灯和专业托管公司。未找到Finfo类是错误。我在php.ini中添加了这条语句,以便在win7 wamp
下使用finfo。extension=php_fileinfo.dll
我能够使用文件信息对象和函数。但是当我试图销毁finfo对象时出现了一个奇怪的错误。
错误:Warning: finfo_close() expects parameter 1 to be resource
脚本:
...
$finfo = new finfo(FILEINFO_MIME_TYPE);
$semamime = $finfo->file($_FILES['filedata']['tmp_name']);
if (false === $ext = array_search(
$finfo->file($_FILES['filedata']['tmp_name']),
array(
'pdf' => 'application/pdf',
),
true
)) {
throw new RuntimeException('Invalid file format.');
}
!!!! finfo_close($finfo); !!!
...
文件存在。我在屏幕上看到文件内容的ANSI形式。我给了finfo_close一个合法的参数,但是运气不好。这个错误是关于我的语法还是我使用的wamp ?
编辑
完整脚本:http://pastebin.com/x8Bbv5S4
php.ini文件:http://pastebin.com/9KjVjThU(扩展名在最后一行激活)
手册中finfo_open
的示例仅显示在使用finfo_open
的过程风格时使用finfo_close
-在面向对象风格(new finfo(…)
)的第一个示例中,您会注意到那里没有对finfo_close
的调用…所以我认为在这种情况下根本不需要。