2

でコーディングされたアプリケーションにファイル アップロード機能を統合したいと考えていますZF2。インターネット上でいくつかの資料を見つけました ( link1link2 ) が、ファイルのアップロードが現在のコントローラー内のフォームを介して処理されるたびに。

私のアプリケーションには、ユーザーがファイルをアップロードできる多くのコントローラーがあり、アップロードされたすべてのファイルに対してかなりの処理を行います (承認、サムネイルの作成、ファイル サイズ、画像サイズ、ページ数などの情報の収集など)。 in document... ) したがって、ファイルのアップロードに関連するコードを 1 か所に集中させたいと考えています。

私は、さまざまなコントローラーからファイル アップロード フォームをレンダリングできると考えていましたが、常に同じもの(例: ) をform action指し、ルーティングでそれらのファイルをたとえばモジュールに送信するようにしました。私はファイルアップロードモジュールの検索に失敗したので、これはあまり良い考えではないかもしれないと考えているので、私の質問:URL/uploadsUploadsZF2googleZF2 modules site

1 つのコントローラーでファイル アップロード フォームを生成し、別のモジュールのコントローラーでファイルのアップロードを処理する際の制限 (使用できない便利な機能) は何ですか?

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 に答える