Varun
Varun

Reputation: 45

Zend File Transfer: Problem when uploading a single image

I cannot understand how ->isuploaded() works. I am suppose to upload six images to display on my index page. Now the problem is, in my update function, if I upload only one or two image $upload->isUploaded() returns a false value, but if I decide to update all six of them it returns a true value. How do I deal with this problem? Am i missing out something here?

Here is my zend file transfer upload

$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;

Upvotes: 1

Views: 1696

Answers (2)

zelibobla
zelibobla

Reputation: 1508

By default Zend guess all uploaded files are invalid even if just one of submitted form file fields was empty. Zend docs are suggest to override this behavior by calling isValid() method before receive(). So I'm not sure if suggest best solution, but it works for me:

$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' );
}

And so on with every file field name. Wrap in foreach if needed.

Upvotes: 2

Niklas
Niklas

Reputation: 30002

Use isValid() instead.

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

Once you know your upload passed the validators, then start processing the images.

Upvotes: 1

Related Questions