我目前正在用戶上傳一個MS Word文檔,我正在檢查XML中的一個版本。控制器當前會檢查isValid(),然後點擊一個執行解析和提取的庫(因爲word是一個存檔)。現在,由於它在技術上已經「有效」,所以我需要通過庫再次檢查有效性。 Zend Framework中的最佳行爲是什麼?從Kohana的土地Zend Framework - 驗證上傳內容(二級驗證)
乾杯;)
我目前正在用戶上傳一個MS Word文檔,我正在檢查XML中的一個版本。控制器當前會檢查isValid(),然後點擊一個執行解析和提取的庫(因爲word是一個存檔)。現在,由於它在技術上已經「有效」,所以我需要通過庫再次檢查有效性。 Zend Framework中的最佳行爲是什麼?從Kohana的土地Zend Framework - 驗證上傳內容(二級驗證)
乾杯;)
我想我明白你在找什麼。
您目前正在調用對錶單有效,您的文件通過表單驗證(正確的大小,擴展名...)現在您需要解壓縮文件並驗證內容。
我打算假設您已經擁有驗證內容的代碼,並且只是想了解如何在控制器中使用它。
'
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;
}
本示例應提供這種類型的問題的基本控制器的工作流程。我希望它能解決你的問題。
感激不盡! – wesside
創建您自己的驗證器。 –
好吧,我做到了。儘管我有使用addValidator(new My_Check)擴展zend_form的形式;雖然,文檔的提取發生在庫中,並且發生在isValid之後。在這種情況下,它將不得不發生兩次,這不是我想要做的。 – wesside
我正在檢查文件中的實際數據以進行驗證。它需要作爲二級驗證發生。首先,所有的基本項目都是正確的(它的文件,小於N字節等)。然後,go..ok現在是有效的..我需要做一個二級驗證 – wesside