Zend_File_Transfer_Adapter_Http addValidator isValid

时间:2012-08-02 16:24:09

标签: php zend-framework

这是我的代码

$adapter = new Zend_File_Transfer_Adapter_Http();
$adapter->addValidator('Extension', false,
                array('extension' => 'exe, php, pl, js, html, htm', 'case' => false));
if (!$adapter->isValid())
{
   return 'ERROR';
}

当我尝试上传jpg或txt文件时,我收到'ERROR'字符串。看起来像$ adapter-> isValid()返回false。应该归还吗?

我的代码有什么问题?

2 个答案:

答案 0 :(得分:0)

主要问题是您尝试上传jpgtxt文件,但列表中不允许这些扩展名。您只允许exephppljshtmlhtm

扩展在数组中设置的方式也存在一个小问题,它们之间有空格。我检查了这些值,而ZF有你提供的扩展名列表,但除了第一个之外的每一个都有一个空格。

以下两个选项中的任何一个都可以使用:

// array method
$adapter->addValidator('Extension', false,
                       array('txt', 'jpg', 'jpeg', 'exe',
                             'php', 'pl', 'js', 'html', 'htm',
                             'case' => false));

// or

// string method
$adapter->addValidator('Extension', false,
                       'txt,jpg,jpeg,exe,php,pl,js,html,htm');

答案 1 :(得分:0)

尝试使用此代码,您也可以在错误时添加消息

$adapter->addValidator(
       'extension', 
       false, 
       array(
            'jpg,jpeg,png,avi,mov,mpeg,wmv', 
            'messages' => array(
                               Zend_Validate_File_Extension::FALSE_EXTENSION => 
                               'Invalid format must be jpg,jpeg,png,avi,mov,wmv or mpeg.'
                                )
             )
        );