Zend Framework 2多上传文件

时间:2014-08-16 22:12:03

标签: zend-framework2 zend-form

我下载并ZF2 File Upload Examples Module 我使用ProgressExamples控制器下载多个文件但是在sessionAction中我不能使用$progress->exchangeArray($form->getData());,因为有多个文件,我无法提取文件的['name']

这是行动

public function sessionAction()
    {
        $form = new ProgressUpload('file-form');
        $form->get('submit')->setValue('Envoyer');

        $request = $this->getRequest();
        if ($request->isPost()) {
            $progress = new Progress();
            $form->setInputFilter($progress->getInputFilter());
            $file = $request->getFiles()->toArray();
            // Postback
            $data = array_merge_recursive(
                $request->getPost()->toArray(),
                $file
            );

            $form->setData($data);
            if ($form->isValid()) {
                //
                // ...Save the form...
                //
                $progress->exchangeArray($form->getData());
                var_dump($file['file']['name']); 
                //$this->getProgressTable()->saveProgress($progress);

            } 
        }

        return array('form' => $form);
    }

1 个答案:

答案 0 :(得分:0)

$file是一个数组,每个上传的文件都有一个元素。这些元素的zach是一个关联数组,其中包含该文件的信息(namesize,...等)。因此,如果要提取上传文件的名称,可以使用foreach循环浏览文件:

foreach ($file as $f) {
   $name = $f['name'];

   //....
}

希望这可以提供帮助。