Zend File Transfer: проблема при загрузке одного изображения - PullRequest
1 голос
/ 07 июня 2011

Я не могу понять, как -> isuploaded () работает.Я предполагаю загрузить шесть изображений для отображения на моей странице индекса.Теперь проблема заключается в том, что в моей функции обновления, если я загружаю только одно или два изображения, $ upload-> isUploaded () возвращает ложное значение, но если я решаю обновить все шесть, оно возвращает истинное значение.Как мне справиться с этой проблемой?Я что-то упускаю здесь?

Вот моя загрузка файла Zend

$upload = new Zend_File_Transfer();
$upload->addValidator('Count', false, array('min' =>1, 'max' => 6)) 
               ->addValidator('Size', false, array('max' => '1Mb'))
               ->addValidator('ImageSize', false, array('minwidth' => 50,
                                                        'maxwidth' => 1000,
                                                        'minheight' => 50,
                                                        'maxheight' => 1000));

if ($upload->isUploaded()) $hasImage = true;

Ответы [ 2 ]

2 голосов
/ 25 августа 2011

По умолчанию Zend предполагает, что все загруженные файлы являются недействительными, даже если только одно из представленных полей файла формы было пустым.Zend-документам предлагается переопределить это поведение, вызывая isValid() method до receive().Поэтому я не уверен, предложите ли лучшее решение, но оно работает для меня:

$upload = new Zend_File_Transfer();
$upload->setDestination( 'some your destination' );
if( $adapter->isValid( 'your form file field name' ) ){
    $adapter->receive( 'your form file field name' );
}

И так далее с каждым именем поля файла.При необходимости заверните foreach.

1 голос
/ 07 июня 2011

Используйте isValid () вместо.

if ($upload->isValid()) {
    // success!
} else {
    // failure!
}

Как только вы знаете, что ваша загрузка прошла валидаторы, начните обработку изображений.

...