Я пытаюсь загрузить файл с помощью Zend Framework 1.7.4, но не был успешным. Я прочитал учебник Akrabat , который был полезен, но когда я использовал эти методы в своем проекте, я не смог заставить его работать.
Ссылка, которую вы опубликовали, представляет собой всего лишь учебное пособие Zend Framework и не обновляется после ZF 1.5.
В любом случае, как только вы начнете с Zend, это образец кода, который вы хотите использовать для получения загрузки. Форма, выполняющая проводку, должна иметь правильные компоненты для загрузки файлов.
//validate file //for example, this checks there is exactly 1 file, it is a jpeg and is less than 512KB $upload = new Zend_File_Transfer_Adapter_Http(); $upload->addValidator('Count', false, array('min' =>1, 'max' => 1)) ->addValidator('IsImage', false, 'jpeg') ->addValidator('Size', false, array('max' => '512kB')) ->setDestination('/tmp'); if (!$upload->isValid()) { throw new Exception('Bad image data: '.implode(',', $upload->getMessages())); } try { $upload->receive(); } catch (Zend_File_Transfer_Exception $e) { throw new Exception('Bad image data: '.$e->getMessage()); } //then process your file, it's path is found by calling $upload->getFilename()
Не забудьте установить атрибут enctype
формы в « multipart/form-data
». Если вы используете Zend_Form, вызовите
$form->setAttrib('enctype', 'multipart/form-data');
Также обратите внимание, что Zend_Form::setDestination
устарел, используйте для этого фильтр переименования:
// Deprecated: // $upload->setDestination('/tmp'); // New method: $upload->addFilter('Rename', '/tmp');
$this->setAction('/sandbox/example/form')->setEnctype('multipart/form-data')->setMethod('post'); $photo = new Zend_Form_Element_File('photo'); $photo->setLabel('Photo:')->setDestination(APPLICATION_PATH ."/../public/tmp/upload"); $this->addElement($photo);
Вы можете установить любой пример назначения $ photo-> setLabel ('Фото:') -> setDestination (APPLICATION_PATH. "/../ data");