【发布时间】:2014-10-01 08:47:12
【问题描述】:
我在 windows7 下使用 wampserver.com 的当前 wamp(Apache:2.4.9,PHP:5.5.12)。文件上传脚本在文件信息功能方面遇到问题。我在使用 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(在最后一行激活了扩展)
【问题讨论】:
-
你确定 extension=php_fileinfo.dll 没有分号吗?
-
积极。在擦除分号之前,第一行给出错误。现在是 finfo_close()
-
@kimbarcelona 我发布了文件
-
examples for
finfo_openin the manual 仅在使用带有finfo_open的过程样式时才显示finfo_close- 在第一个面向对象样式的示例中(new finfo(…)),您会注意到那里没有给finfo_close的电话……所以我认为在这种情况下根本不需要它。 -
你是对的。奇怪的是,我从我的其他脚本中复制了这个脚本,该脚本在远程灯上完美运行。我认为托管公司忽略了 php 错误。
标签: php file-upload wamp mime-types