Strutsのファイルアップロードで制限を超えた場合の判定

2009年 3月 19日 19:07

Strutsのファイルアップロード<html:file>で制限を超えたことを判定する方法のメモです。

Strutsのファイルアップロード制限はstruts-config.xmlに以下のように記述して行います。

<controller
    maxFileSize="1024K"
    processorClass="org.apache.struts.acrion.RequestProcessor" />

この制限(上記の場合は1M)を超えた場合、requestにMultipartRequestHandler.ATTRIBUTE_MAX_LENGTH_EXCEEDEDをキーとしたBooleanオブジェクトがtrueで設定されるので、その内容を見て判定します。

具体的には、

Boolean exceeded = (Boolean)request.getAttribute(MultipartRequestHandler.ATTRIBUTE_MAX_LENGTH_EXCEEDED);
if(exceeded == null) {
    System.out.println("超えていません");
} else if(exceeded.booleanValue()) {
    System.out.println("超えています");
}

のような感じです。

チェック場所はActionFormのvalidateメソッドあたりがいいかもしれません。なお、ファイルアップロード制限値を超えてしまった場合、ActionFormの各プロパティには値が設定されませんので、注意が必要です。


トラックバック URL


※言及リンクのないトラックバックは削除されます。
※書き込まれてから公開されるまで時間がかかる場合があります。

コメントをどうぞ

Spam protection by WP Captcha-Free

※書き込まれてから公開されるまで時間がかかる場合があります。