1

->isuploaded() の仕組みがわかりません。インデックス ページに表示する 6 つの画像をアップロードするとします。ここでの問題は、更新関数で、1 つまたは 2 つの画像のみをアップロードすると $upload->isUploaded() が false の値を返しますが、6 つすべてを更新しようとすると true の値を返すことです。この問題にどう対処すればよいですか?ここで何かを見逃していますか?

これが私のzendファイル転送アップロードです

$upload = new Zend_File_Transfer();
$upload->addValidator('Count', false, array('min' =>1, 'max' => 6)) 
               ->addValidator('Size', false, array('max' => '1Mb'))
               ->addValidator('ImageSize', false, array('minwidth' => 50,
                                                        'maxwidth' => 1000,
                                                        'minheight' => 50,
                                                        'maxheight' => 1000));

if ($upload->isUploaded()) $hasImage = true;
4

2 に答える 2

2

デフォルトでは、Zendは、送信されたフォームファイルフィールドの1つだけが空であっても、アップロードされたすべてのファイルが無効であると推測します。Zendのドキュメントでは、の前にisValid()メソッドを呼び出すことでこの動作をオーバーライドすることをお勧めします。したがって、最善の解決策を提案するかどうかはわかりませんが、それは私にとってはうまくいきます: receive()

$upload = new Zend_File_Transfer();
$upload->setDestination( 'some your destination' );
if( $adapter->isValid( 'your form file field name' ) ){
    $adapter->receive( 'your form file field name' );
}

など、すべてのファイルフィールド名についても同様です。必要に応じてラップインしforeachます。

于 2011-08-25T07:23:16.680 に答える
1

代わりにisValid()を使用してください。

if ($upload->isValid()) {
    // success!
} else {
    // failure!
}

アップロードがバリデーターを通過したことを確認したら、画像の処理を開始します。

于 2011-06-07T16:09:19.843 に答える