2009-03-20 9 views

Odpowiedz

24

Opublikowany link to tylko ogólny samouczek Zend Framework i nie został zaktualizowany za ZF 1.5.

W każdym razie, gdy zaczniesz korzystać z Zend, jest to próbka kodu, który posłuży do przesłania pliku. Formularz wysyłania musi mieć prawidłowe składniki do przesyłania plików.

//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

Nie zapomnij ustawić atrybut postaci do "multipart/form-data" enctype. Jeśli używasz Zend_Form, zadzwoń

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

Należy również pamiętać, że Zend_Form::setDestination jest przestarzała, użyj filtra do zmiany nazwy, że:

// 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); 

Można ustawić dowolny przykład docelowy $ foto-> setLabel ('Photo:') -> setDestination (APPLICATION_PATH. "/../ data");