Как получить имя и размер загруженного файла перед проверкой этого файла с помощью Zend Addvalidator - PullRequest
1 голос
/ 27 февраля 2012

при использовании Zend Add валидаторов для проверки размера и расширения файла. Можно ли отслеживать имя файла и размер загружаемого файла. Можем ли мы получить размер и имя файла даже при сбое проверки. Я не могу отследитьимя файла при сбое проверки, так как файл не поступает во временный каталог при сбое проверки. Файл проверен перед сохранением во временном каталоге

Вот мой фрагмент кода:

        $document_path_field = $this->CreateElement('file','document_path');
        $document_path_field->setLabel('Document');
        $document_path_field->setAttrib('class','button');
        //$document_path_field->setDestination(SUPPORTING_DOCUMENT_DIRECTORY);
        $document_path_field->addValidator('Count', false, 1);
        $document_path_field->addPrefixPath('Course_Validate_File', 'Course/validate/File', 'validate');
        $document_path_field->addValidator('Size', false, 1000000);
        $document_path_field->addPrefixPath('Course_Validate_File', 'Course/validate/File', 'validate');
        $document_path_field->addValidator('CheckExtension',false,'docx,doc,jpg,png,gif,pdf');                             
        $document_path_field->clearDecorators();
        if(isset($field_required_array['document_path']) && $field_required_array['document_path'] == "Yes")
            {
                $document_path_field->setRequired(true);
            }
            else
            {
                $document_path_field->setRequired(false);
            }
                    $document_path_field->setDecorators($this->setFieldElementDecorators());


        if(in_array('document_path',$field_names_array))
                        {
                                array_push($form_elements,$document_path_field);
                        }   


            $current_document_path = $this->CreateElement('hidden','current_document_path');
            $current_document_path->setLabel('Current Document')
                          ->clearDecorators()
                          ->addDecorator($imageviewScript)
                          ->setValue($this->_document_path);
            array_push($form_elements,$current_document_path);

1 Ответ

0 голосов
/ 27 февраля 2012

Код, который вы разместили, выглядит так, как будто он предназначен для формы, а не для контроллера, поэтому он не очень помогает.

В примере № 2 здесь: http://framework.zend.com/manual/en/zend.file.transfer.introduction.html#zend.file.transfer.introduction.checking

Вво втором операторе if вы можете просто получить имя файла:

if (!$upload->isValid($file)) {
    print "Sorry but $file is not what we wanted";
    continue;
} else echo 'File '.$info['name'].' is not allowed';

Дополнительная информация: Загрузка файла с использованием Zend Framework 1.7.4

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...