0

を実装するフィールドセットを持っているInputFilterProviderInterfaceので、機能がありますgetInputFilterSpecification。この__construct()関数は、次のようにファイル要素 (「ロゴ」) を追加しています。

    $this->add(array(
        'name' => 'logo',
        'type' => 'file',
        'attributes' => array(
            'required' => false,
            'class' => 'form-control',
            'id' => 'logo',
        ),
        'options' => array(
            'label' => 'Company Logo: ',
        ),
    ));

関数に RenameUpload 入力フィルターを追加するにはgetInputFilterSpecificationどうすればよいですか?

次のいくつかのバリエーションを試しましたが、成功しませんでした。

public function getInputFilterSpecification()
{
    return array(
        
        array(
            'name' => 'logo',
            'filterchain' => array(
                'name' => 'filerenameupload',
                'options' => array(
                    'target' => '/public/images/' . time(),
                ),
            ),
            'required' => false,
        ),
        //... other filters
    }
}

FileRenameUpload フィルタ ( ) を追加するにはどうすればよいZend\Filter\File\RenameUploadですか?

[編集]

配列を次のように変更しました。

        array(
            'name' => 'logo',
            'filters' => array(
                array(
                    'name' => 'filerenameupload',
                    'options' => array(
                        'target' => '/public/images/' . time(),
                    ),
                ),
            ),
            'required' => false,
        ),

これは機能しているように見えますが、現在このメッセージが表示されています-

ファイル 'C:\xampp\tmp\phpDA68.tmp' の名前を変更できませんでした。ファイルの処理中にエラーが発生しました。

どのようなエラーが発生した可能性がありますか? どうすれば修正できますか?

4

2 に答える 2

0

この問題は、無効な を指定したために発生していますtarget。をプレフィックスとして付けるとgetcwd()、パスはアプリケーション ルートからの相対パスになります。

array(
    'name' => 'logo',
    'filters' => array(
        array(
            'name' => 'filerenameupload',
            'options' => array(
                'target' => getcwd() . '/public/images/' . time(),
            ),
        ),
    ),
    'required' => false,
),
于 2016-08-08T10:55:13.433 に答える