http://search.cpan.org/~flora/Catalyst-Runtime-5.80007/lib/Catalyst.pm#ON-DEMAND_PARSERに示すように、parse_on_demandを使用しようとしました。
ただし、アップロードを停止できないようです。すぐに終了するアクションを作成するだけでこれをテストしていますが、ブラウザーは、アクションに到達する前に、選択した非常に大きなファイルをアップロードしているようです。
sub upload :Local {
my ($self, $c) = @_;
die;
# What I'd like to do is this:
# if ($c->req->header('Content-Length') > $some_limit) {
# die "Upload too large";
# }
# ... check filename extension and mime-type...
}
これは、アップロードの検証に取り組む正しい方法ですか?