0

这是我的代码

$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 文件时,我得到“错误”字符串。看起来 $adapter->isValid() 返回 false。它应该返回 true 吗?

我的代码有什么问题?

4

2 回答 2

0

主要问题是您正在尝试上传jpgtxt文件,但列表中均不允许这些扩展名。您只允许exe, php, pl, js, html, 或htm.

扩展在数组中的设置方式也存在一个小问题,它们之间有空格。我检查了这些值,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');
于 2012-08-02T17:27:36.110 回答
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.'
                                )
             )
        ); 
于 2012-08-02T18:40:48.773 回答