Próbuję przesłać plik za pomocą Zend Framework 1.7.4, ale nie udało się. Przeczytałem Akrabat's tutorial, co było pomocne, ale gdy użyłem tych technik w moim projekcie, nie byłem w stanie go uruchomić.Przesyłanie plików za pomocą Zend Framework 1.7.4
5
A
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");
proszę dodać więcej informacji/code/errormessages, co dokładnie nie działa. – Karsten