ZF2文件上传:文件为空

时间:2014-03-25 14:42:04

标签: php validation file-upload zend-framework2

我在Zend Framework 2应用程序中上传图像时遇到问题,我认为我的代码中某处存在配置错误。

这是我目前的守则。我创建了Form和Filter,就像ZfcUser Form一样。

表单扩展了ProvideEventsForm(ZfcBase)

$file = new Element\File('image');
$file->setLabelAttributes(array('class' => 'control-label col-sm-4'));
$file->setLabel('image');
$this->add($file);

过滤器扩展ProvideEventsInputFilter(ZfcBase)

$this->add(
    array(
        'type' => 'Zend\InputFilter\FileInput',
        'name' => 'image',
        'required' => true,
        'validators' => array(
            array(
                'name' => 'File\UploadFile',
            ),
        ),
        'filters' => array(
            array(
                'name' => 'File\RenameUpload',
                'options' => array(
                    'target' => './public/img/uploads',
                    'randomize' => true,
                ),
            ),
        ),
    )
);

在验证过程中调用了FileInput :: isValid()方法 - 但是Value总是为null,我不知道为什么会这样。

HTML-Form设置为multipart / form-data,服务器配置也没问题。 我用于测试的文件只有80KB。

任何人都有想法,出了什么问题?

1 个答案:

答案 0 :(得分:3)

最后,我找到了问题的解决方案。

在将帖子信息添加到表单之前,必须将它们与文件信息合并:

$files = $this->getRequest()->getFiles()->toArray();
$post = array_merge_recursive(
    $this->getRequest()->getPost()->toArray(),
    $files
);

$form->setData($post);
相关问题