2010-03-26 101 views
6

我有这样与文件元素Zend_Form的:Zend_Form的 - 文件“foto.jpg”的MIME类型无法检测

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

,当我使用本地主机的图像上传成功。但是,当我搬到我的主机验证错误显示图像字段。文件'foto.jpg'的mimetype无法检测到。这可能是什么原因?

+0

我猜你需要MIME扩展和托管不哈已安装;) – 2010-03-27 00:01:37

回答

11

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

PECL安装的FileInfo:

在Linux上安装的FileInfo扩展

,那么你需要添加到你的php.ini这一行:

延长= fileinfo.so

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

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

如果您使用的XAMPP和本地主机CD的/ usr /港口/ sysutils的/ PECL-的FileInfo/ make install的

3

ZF Reference Guide评论:

为了使IsImage工作(也许所有其他MIME相关验证)Zend服务器上的Win32我不得不更换Zend服务器上提供的“magic.mime” (“\ etc”)由Apache(“\ conf”,文件名为“magic”)(不要忘记重新启动Apache)。

如果仍然不工作,那么你可以尝试用这些替代方案:

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

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

只要打开你的php.ini文件并取消注释:

延长= php_fileinfo.dll