FormValidator-Simpe-Extension-0.01.tar.gz
SimpleのExtensionてどっちやねんという感じですが、アップロードファイルのバリデーション以外に、メッセージをFlaggedなUTF-8にデコードした形でgetできるような機能もつけてみたので、名前をなんにするか悩んだ挙句、とりあえずExtensionにしておきました。使い方はこんな感じです。
>
<
use FormValidator::Simple::Extension;
## アップロードファイルのバリデーション
FormValiator::Simple::Extension->check( $q, [
thumbnail => [
'UPLOAD_NOT_BLANK', # ファイルがアップされたかどうか
[UPLOAD_FILESIZE,0, 1024], # ファイルサイズは1kBまで
[UPLOAD_FILENAME_REGEX, 'jpe?g|gif|png$'] #画像っぽいファイル名ならOK
],
]);
## メッセージをFlagged UTF-8でうけとる
FormValidator::Simple::Extension->set_messages('messages.yml');
# どんな文字コードからデコードするか文字コードをセット
FormValidator::Simple::Extension->set_message_decode_parms('utf-8');
my $result = FormValidator::Simple::Extension->check($q, $prof);
# メッセージはデコードされる
my $messages = $result->messages;
これらの拡張が本家のFormValidator::Simpleに取り込まれたらうれしいのですが、アップロードファイルを取得する方法がApache::Requestのuploadメソッドしか想定してないので、ちょっとマイナー過ぎるきもします。。
CGI.pmのuploadメソッドも考慮したものにすれば、取り込んでもらえるかなー。
ども。
返信削除CGI::AppやCatalystなどのフレームワーク用
Pluginとの兼ね合いがあるので、
CGI.pmやCatalyst::Request考慮しつつ
取り込んでみる方向で頑張ってみます。
katoさんこんにちは!
返信削除取り込んでいただける方向で検討いただけるなんてうれしいです。
ありがとうございます!
Catalyst::Requestも考慮に入れないといけませんねー。
Catalyst::Requestのドキュメント見てみましたが、Apache::Requestのインターフェース+独自メソッドって感じなので、こちらはそのまま使えそうですね。
CGIのほうはuploadでファイルハンドルを返すので、ファイルハンドルだったらごにょごにょっていう分岐処理をValidationに加えればOKですかねー。