Загрузить изображение с помощью Zend Framework? - PullRequest
1 голос
/ 01 февраля 2011

Я хочу загрузить изображение в Zend-framework.

В Application_Form_Test.php я пишу следующий код ....

uploadImage = new Zend_Form_Element_File('uploadImage');
$uploadImage->setLabel("Upload Image ")
            ->setRequired(true)               
            ->addValidator('Extension', false, 'jpeg,png')
            ->getValidator('Extension')->setMessage('This file type is not supportted.');

В testAction () я пишу следующий код.....

$upload = new Zend_File_Transfer_Adapter_Http();
$upload->addValidator('Size', false, 52428800, 'image');
$upload->setDestination('uploads');
$files = $upload->getFileInfo();
foreach ($files as $file => $info) {
    if ($upload->isValid($file)) {
         $upload->receive($file);
    }
}

Код работает успешно, но я не получаю это изображение в папку назначения?

В чем может быть проблема ....?Пожалуйста, помогите мне .....

Заранее спасибо ....

Ответы [ 2 ]

3 голосов
/ 01 февраля 2011

Я не думаю, что метод getFileInfo () должен фактически выполнять загрузку файла. Я считаю, что в вашем действии контроллера вы должны либо вызвать метод getValues ​​() для объекта формы, либо вызвать метод receiveFile () для элемента формы.

См. http://framework.zend.com/manual/en/zend.form.standardElements.html#zend.form.standardElements.file для примеров документации.

0 голосов
/ 05 февраля 2011

Дополнительное примечание: если вы посмотрите на Zend_Form_Element_File->receive(), вы увидите, что isValid () вызывается, поэтому вам не нужно загромождать ваш контроллер им.Вот что я делаю:

if ($upload->receive()) {
    if ($upload->getFileName() && !file_exists($upload->getFileName())) {
        throw new Exception('The upload should have worked, but somehow did not!');
}
} else {
    throw new Exception(implode(PHP_EOL, $upload->getErrors()) . implode(PHP_EOL, $upload->getErrorMessages()));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...