这是我的代码
$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。应该归还吗?
我的代码有什么问题?
答案 0 :(得分:0)
主要问题是您尝试上传jpg
或txt
文件,但列表中不允许这些扩展名。您只允许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');
答案 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.'
)
)
);