Zend_Form - The mimetype of file 'foto.jpg'

2019-03-28 05:15发布

I have a Zend_Form with file element like this:

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

And when I'm using localhost the image is uploaded successfully. But when I move to my hosting the validation error shows for image field. The mimetype of file 'foto.jpg' could not be detected. What can be the reason of this?

3条回答
smile是对你的礼貌
2楼-- · 2019-03-28 05:49

same thing happened to me, this was crazy stuff, more than 2 hours trying to figure out what's wrong, here is how to fix it:

install fileinfo extension on linux:

pecl install fileinfo

then you need to add to your php.ini this line:

extension=fileinfo.so

restart your apache and you are done!

*if you server is freeBSD you have to do this:

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

查看更多
看我几分像从前
3楼-- · 2019-03-28 05:59

From the comments in the ZF Reference Guide:

In order to make IsImage working (and maybe all other mime related validators) on Zend Server on win32 I had to replace "magic.mime" supplied on Zend Server ("\etc") by the one on Apache ("\conf" , file is called "magic") (don't forget to restart Apache).

If it still doesn't work then you could try with these alternatives:

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

or

  • $element->addValidator('Extension', false, 'jpg');
查看更多
仙女界的扛把子
4楼-- · 2019-03-28 06:14

If you are using XAMPP and localhost just open your php.ini file and uncomment:

extension=php_fileinfo.dll

查看更多
登录 后发表回答