2009-03-20 13 views

Respuesta

24

El enlace que ha publicado es solo un tutorial general de Zend Framework, y no ha sido actualizado más allá de ZF 1.5.

De todos modos, una vez que empiezas con Zend, esta es una muestra del código que usarías para recibir una carga. El formulario que realiza la publicación debe tener los componentes de carga de archivos correctos.

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

No se olvide de establecer el atributo enctype de la forma de "multipart/form-data". Si está utilizando Zend_Form, llame

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

También tenga en cuenta que Zend_Form::setDestination es obsoleto, utilice el filtro de cambio de nombre para eso:

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

Se puede establecer cualquier ejemplo de destino $ foto-> setLabel ('Foto:') -> setDestination (APPLICATION_PATH. "/../ data");