2009-03-20 3 views
5

Я пытаюсь загрузить файл с помощью Zend Framework 1.7.4, но не был успешным. Я прочитал Akrabat's tutorial, что было полезно, но когда я использовал эти методы в своем проекте, я не смог заставить его работать.Загрузка файла с использованием zend framework 1.7.4

+0

, пожалуйста, добавьте дополнительную информацию/code/errormessages, что именно не работает. – Karsten

ответ

24

Ссылка, которую вы опубликовали, является всего лишь учебным пособием 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() 
8

Не забудьте установить атрибут формы для «multipart/form-data» enctype. Если вы используете Zend_Form, вызовите

$form->setAttrib('enctype', 'multipart/form-data'); 

Также отметим, что Zend_Form::setDestination является устаревшим, используйте фильтр для переименования, что:

// Deprecated: 
// $upload->setDestination('/tmp'); 
// New method: 
$upload->addFilter('Rename', '/tmp'); 
0
$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); 

Вы можете установить любой пример назначения $ фото-> setLabel ('Фото:') -> setDestination (APPLICATION_PATH. "/../ data");

Смежные вопросы