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

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

Zend Frameworkネタです。

Zend Frameworkでファイルアップロード回りについて
修正をしていたら見つかった問題です。



http://framework.zend.com/manual/ja/zend.file.transfer.validators.html

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でラッパクラス作ってあるので、
ここでこの部分の問題を吸収するよう修正してみます。


しかし、Zend_Form_Fileに関わる修正を行う時間が長い気がする。
複数ファイルアップロード機能をラッパに組み込んだためだろうか……

TrackBack URL :

Leave a comment  

name

email

website

Submit comment