Как видно из заголовка, я попытался вызвать функцию receive () либо элемента Form, либо объекта адаптера (разумеется, не по порядку). Я напечатал возвращенное значение - было 1 в обоих случаях - что означает, что receive () вернул true.
Файл не был найден на сервере, хотя. Я попытался установить тип шифрования Zend формы для multipart / form-data - не помогло.
Я абсолютно невежественен, поэтому любая информация приветствуется.
Вызов метода receive () для адаптера передачи: местоположение файла и имя загрузки являются константами.
$this->uploadName = $uploadName;
$this->upload = new Zend_File_Transfer_Adapter_Http();
$this->upload->setDestination($this->fileLocation);
...
$val = $this->upload->receive();
$quoteName = $this->upload->getFileName($this->uploadName);
$size = $this->upload->getFileSize($this->uploadName);
calling receive on form element:
//form creation - my form extends zend form
$staticForm = Srm_Form::getForm(my form,null,null,
my config);
$staticForm->setEnctype('multipart/form-data');
$staticForm->getElement(my file element name)->setDestination(my dest);
//calling receive
$form = Srm_Form::getForm(my form,null,null,my config);
$form->setEnctype('multipart/form-data');
if(!$form->isValid($_POST)){
print_r($form->getMessages());
}
// echo $form->getElement(my file element)->getValue();
$val = $form->getElement(my file element)->receive();
echo "bbbbbb".$val;
Я должен добавить, что этот код работает, когда он вызывается после того, как элемент файла добавляется в форму вручную , а не с помощью файла конфигурации.
Хорошо, проблема была найдена -
При обработке отправленной формы не был задан пункт назначения для элемента файла (он был установлен вручную для адаптера передачи в другом месте).