Hi,

I have a form with a html5 multiple file upload element.

        $this->add(array(
            'type' => 'File',
            'name' => 'images',
            'options' => array(
                'label' => 'images',
                'label_options' => array('always_wrap' => true),
            ),
            'attributes' => array(
                'id' => 'images',
                'multiple' => true,
            ),
        ));
        $this->filter->add(array(
            'name' => 'images',
            'required' => false,
            'filters' => array(
                array(
                    'name' => '\Zend\Filter\File\Rename',
                    'options' => array(
                        'target' => './data/tmpuploads/images.jpg',
                        'randomize' => true,
                    )
                ),
            ),
        ));

I noticed the \Zend\Filter\File\Rename doesnt seems to work for multiple files as it doesnt know how to process a 2 levels array. I guess this is a bug. There is no file filter which knows to work for multiple files ?


    public function filter($value)
    {
        if (!is_scalar($value) && !is_array($value)) {
            return $value;
        }

        // An uploaded file? Retrieve the 'tmp_name'
        $isFileUpload = false;
        if (is_array($value)) {
*if (!isset($value['tmp_name'])) {*
                return $value;
            }

            $isFileUpload = true;
            $uploadData = $value;
            $value      = $value['tmp_name'];
        }

Of course I can define my own filter class or use manually the filter within a for loop.

Cristian Bichis

Reply via email to