问题
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?
回答1:
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
回答2:
If you are using XAMPP and localhost just open your php.ini file and uncomment:
extension=php_fileinfo.dll
回答3:
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');
来源:https://stackoverflow.com/questions/2526286/zend-form-the-mimetype-of-file-foto-jpg-could-not-be-detected