2

我想将文件上传功能集成到使用ZF2. 我在互联网上找到了一些材料(link1link2),但每次文件上传都是通过当前控制器中的表单处理的。

在我的应用程序中,有许多控制器可供用户上传文件,我也对每个上传的文件进行了相当多的处理(例如授权、创建缩略图、收集文件大小、图像尺寸、页数等信息)在文档中...),因此我想将与文件上传相关的代码集中在一个地方。

我在想我可以从不同的控制器渲染文件上传表单,但form action总是指向相同的URL(例如/uploads)并让我的路由将这些文件发送到一个Uploads模块。我一直没有成功地寻找ZF2文件上传模块,google所以ZF2 modules site我认为这可能不是一个好主意,因此我的问题是:

在一个控制器中生成文件上传表单并在单独模块的控制器中处理文件上传的限制是什么(我无法使用哪些有用的功能)?

4

1 回答 1

-1

要创建文件上传表单字段,您需要执行以下操作:

use Zend\Form\Element;
use Zend\Form\Form;

$file = new Element('file');
$name->setAttributes(array(
    'type' => 'Zend\Form\Element\File',
    'label' => 'Upload file',
));

$form = new Form('myform');
$form->add($file);

在视图方面:

<?php
$form->setAttribute('action', $this->url('one_of_the_routes'));
$form->setAttribute('method', 'post');
$form->setAttribute('enctype', 'multipart/form-data');
?>

<?php echo $this->form()->openTag($form); ?>
<p>
    <?php echo $this->formLabel($form->get('file')); ?>
    <?php echo $this->formInput($form->get('file')); ?>
</p>
<?php echo $this->form()->closeTag(); ?>

目前验证器方面存在问题(至少在我上次检查时),但我相信它会很快得到修复。同时,我只是从模型中接近 $_FILES。

注: http: //framework.zend.com/issues/browse/ZF2-327

并阅读该人:http ://packages.zendframework.com/docs/latest/manual/en/modules/zend.form.quick.start.html

于 2012-07-28T22:27:58.413 回答