首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ZF2处理文件上传。如何访问上传的文件?

ZF2处理文件上传。如何访问上传的文件?
EN

Stack Overflow用户
提问于 2013-04-18 00:31:20
回答 1查看 8K关注 0票数 3

我在手册中看到了很多关于创建表单来上传文件的问题和信息。我已经能够设置一个表单来处理文件上传。是否有任何基于Zend的代码用于在文件下载后对其进行处理。

每个教程或手册参考似乎都有类似的内容:

代码语言:javascript
复制
if ($form->isValid()) {
    //
    // ...Save the form...
    //
}

我可以使用像move_uploaded_file这样的原生php函数来管理上传。我是否遗漏了什么,或者Zend只是退回到使用临时文件名作为其他代码中的数据段?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-18 01:22:06

它在手册里

http://framework.zend.com/manual/2.1/en/modules/zend.form.file-upload.html

代码语言:javascript
复制
// File: MyController.php

public function uploadFormAction()
{
    $form = new UploadForm('upload-form');

    if ($this->getRequest()->isPost()) {
        // Make certain to merge the files info!
        $post = array_merge_recursive(
            $this->getRequest()->getPost()->toArray(),
            $this->getRequest()->getFiles()->toArray()
        );

        $form->setData($post);
        if ($form->isValid()) {
            $data = $form->getData();
            // Form is valid, save the form!
            return $this->redirect()->toRoute('upload-form/success');
        }
    }

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

成功上传文件后,$form->getData()将返回:

代码语言:javascript
复制
array(1) {
    ["image-file"] => array(5) {
        ["name"]     => string(11) "myimage.png"
        ["type"]     => string(9)  "image/png"
        ["tmp_name"] => string(22) "/private/tmp/phpgRXd58"
        ["error"]    => int(0)
        ["size"]     => int(14908679)
    }
}

使用您从$form->getData()获得的数组来处理上传的文件。

您还可以设置目标并使用名为的筛选器对其进行重命名。

下面的链接对此有很好的解释:

http://framework.zend.com/manual/2.1/en/modules/zend.filter.file.rename-upload.html#zend-filter-file-rename-upload

希望这能有所帮助。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16065418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档