Zend File Transfer: проблема при загрузке одного изображения
Я не могу понять, как ->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 ответа
По умолчанию Zend предполагает, что все загруженные файлы являются недействительными, даже если только одно из полей отправленного файла формы было пустым. Zend Docs предлагают переопределить это поведение, вызывая isValid()
метод перед 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
если нужно.
Вместо этого используйте isValid().
if ($upload->isValid()) {
// success!
} else {
// failure!
}
Как только вы знаете, что ваша загрузка прошла проверку, начните обработку изображений.