Zend Framework无法确定mime类型的图像上传

时间:2011-05-07 18:04:34

标签: zend-framework

大家好我在我的应用中创建项目时尝试上传图片,但操作无法返回以下错误:无法检测到文件'mytestimage.jpg'的mimetype 。 我已经尝试添加Mime Type验证器,但错误仍然存​​在,任何人都可以告诉我在下面的代码中我出错了。

// Image uploads
$images = new Zend_Form_Element_File('images');
$images->setMultiFile(2)
       ->addValidator('IsImage')
       ->addValidator('Size',false,'5242880')
       ->addValidator('Extension',false,'jpg,png,gif')
       ->addValidator('ImageSize',false,array(
                 'minwidth' => 250,
                 'minheight'=>250,
                 'maxwidth'=>500,
                 'maxheight'=>500
                 ))
       ->setValueDisabled(true);

非常感谢提前。

格雷厄姆

1 个答案:

答案 0 :(得分:4)

我遇到了同样的问题。

Zend_Frameworks尝试以两种方式确定mimetype:

  • 首先它尝试使用PECL FILEINFO-Extension(未在每台服务器上安装)
  • 如果扩展名不是istalled,则会尝试使用mime_content_type(php函数)。但是,自php version 5.3起,该函数已被弃用

所以在这种情况下,我猜你的主机使用的是php 5.3版,并且没有安装PECL FILEINFO-Extension。不幸的是,对我的主持人来说也是如此:(

以下是php-manual中两种方式的更多细节:

顺便说一下。您可以在文件“Zend \ File \ Transfer \ Adapter \ Http.php”中看到ZF使用的代码(第1281-1318行:methodname为_detectMimeType