0

我目前正在让用户上传一个 MS Word 文档,我在其中检查 XML 中的版本。控制器当前检查 isValid() 然后点击一个进行解析和提取的库(因为 word 是一个存档)。现在由于它在技术上已经“有效”,我需要通过库再次检查有效性。Zend Framework 中最好的做法是什么?

来自 Kohana Land 的欢呼声;)

4

1 回答 1

2

我想我明白你在找什么。
您当前调用的表单对表单有效,您的文件通过表单验证(正确的大小、扩展名......)现在您需要解压缩文件并验证内容。

我将假设您已经拥有验证内容的代码,并且只想了解如何在控制器中使用它。
'

public function anyAction() {

$form = new Form();
//test for $_POST
if ($this->getRequest()->isPost(){
    //Test form for validity
    if ($form->isValid($this->getRequest()->getPost()){
        //will receive file upload (unless disabled in element) and filter form values,
        //based on filters attached to the elements.
        $data = $form->getValues();
        //placeholder for whatever code is required to validate contents of file
        $validateFile = new MyFileValidator();
        //test for valid file contents
        if ($validateFile->isValid($data['file']){
            //Do some Stuff 
        }
        //if file contents is not valid, display form and populate values with unfiltered values
        $form->populate($this->getRequest()->getPost());
    }
   //if form is not valid, it should stay populated and display element errors
  }
//if not post send form to view
$this->view->form = $form;
}

此示例应为此类问题提供基本的控制器工作流程。我希望它能解决你的问题。

于 2012-05-15T06:54:50.787 回答