Your browser (Internet Explorer 6) is out of date. It has known security flaws and may not display all features of this and other websites. Learn how to update your browser.
X
Post

[タスク] 複数ファイルアップロード時にバリデーションの詳細が共通化する問題に対応

ver 0.1.2の修正箇所。バグ部分の修正です。




Zend_File_Transferで複数ファイルにバリデーション設定する際、個別にオプション設定できない

前にこの記事で書いたように、Zend_File_Transfer内でバリデータのインスタンスを持っています。
複数のファイルをチェックする場合も同じバリデータであれば生成されるインスタンスは一つで、
設定を使いまわすため前の設定を上書きしてしまう問題がありました。

$upload = new Zend_File_Transfer(); 

// file_1に対して拡張子txtのみを許可する
$upload->addValidator('Extension', false, 'txt', 'file_1'); 

// file_2に対して拡張子phpのみを許可する事を想定しているが、実際は前の設定も上書きしている
$upload->addValidator('Extension', false, 'php', 'file_2'); 

// isValidではどちらのファイルも拡張子phpのみを許可するようにチェックする
if(!$upload->isValid()){
...
}
...

ZF-ExではMy_Form_Fileのラッパクラスを作って処理をしているため、
複数ファイルにisValidでバリデーションチェックをかける場合は
ファイルごとにバリデータ設定をリセットして設定し直すようにして対応しました。


これでこの問題は解決し、複数ファイルであっても個別のバリデーション設定が可能となります。

TrackBack URL :

Leave a comment  

name

email

website

Submit comment