我对 Zend Framework 还很陌生,遇到了一些奇怪的事情,我希望有人能够解释。考虑以下代码:
<? class Form extends Zend_Form
{
public function init()
{
$upload = new Zend_Form_Element_File('upload');
$this->addElement($upload);
}
}
if ($_POST)
{
$form = new Form();
var_dump($form->isValid($_POST));
$values = $form->getValues();
var_dump($_FILES, file_exists($_FILES['upload']['tmp_name']));
exit;
}
?>
<form method="post" enctype="multipart/form-data">
<input type="file" name="upload"/>
<input type="submit" name="submit"/>
</form>
如果上传任何文件,$_FILES 的 var_dump 将输出上传的文件不存在。注释 $form->getValues() 行,它就在那里。调查问题后 - getValues 将实际文件(即 /tmp/php/phpBUI9M3)重命名为上传文件的名称,并将其保存在同一文件夹中(即 /tmp/php/test.png)。为什么?我的印象是 getValues 不应该改变任何数据。
PHP:5.2.17,Zend:1.10.4
谢谢!