Zend_Form - 无法检测到文件'foto.jpg'的mimetype

时间:2010-03-26 19:50:23

标签: zend-framework upload zend-form

我有一个Zend_Form,文件元素如下:

->addElement('file', 'image', array(
        'required' => false,
        'label' => 'Venue Image',
        'validators' => array(
            array('IsImage', false),
            array('Size', false, '2097152'),
            array('Upload', false),
        ),
    ))

当我使用localhost时,图像上传成功。但是当我移动到我的托管时,验证错误显示为图像字段。无法检测到文件'foto.jpg'的mimetype。这可能是什么原因?

3 个答案:

答案 0 :(得分:11)

同样的事情发生在我身上,这是疯狂的事情,超过2个小时试图弄清楚什么是错的,这里是如何解决它:

在linux上安装fileinfo扩展:

  

pecl install fileinfo

然后你需要在你的php.ini这一行添加:

  

延长= fileinfo.so

重启你的apache,你就完成了!

*如果你的服务器是freeBSD,你必须这样做:

  

cd / usr / ports / sysutils / pecl-fileinfo /   make install

答案 1 :(得分:5)

如果您正在使用XAMPP和localhost,只需打开您的php.ini文件并取消注释:

延长= php_fileinfo.dll

答案 2 :(得分:3)

来自ZF Reference Guide的评论:

  

为了在win32上的Zend Server上使IsImage工作(也许还有所有其他mime相关的验证器),我必须用Apache上的那个替换Zend Server(“\ etc”)上提供的“magic.mime”(“\ conf“,文件被称为”魔术“)(别忘了重新启动Apache)。

如果它仍然不起作用,那么您可以尝试使用这些替代方案:

  • $element->addValidator('Mimetype', false, 'image/jpg');

  • $element->addValidator('Extension', false, 'jpg');