3

ファイルをアップロードするためのフォームの作成について、マニュアルで多くの質問や情報を見てきました。ファイルのアップロードを処理するフォームをセットアップできました。ダウンロード後にファイルを操作するための Zend ベースのコードはありますか。

すべてのチュートリアルまたはマニュアル参照には、次のようなものがあるようです。

if ($form->isValid()) {
    //
    // ...Save the form...
    //
}

のようなネイティブ php 関数を使用してアップロードを管理できmove_uploaded_fileます。何か不足していますか、それとも Zend は一時ファイル名を他のコードの一部のデータとして使用するようにフォールバックしますか?

4

1 に答える 1

6

説明書に載ってる

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

// 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() は以下を返します。

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

お役に立てれば。

于 2013-04-17T17:22:05.740 に答える