2012-03-15 11 views
1

GWTで簡単な画像アップロードウィジェットを実装しています。アップロードに成功する前に、実行する必要があるいくつかの基本的な検証があり、のように:Javaファイルのアップロードの検証のベストプラクティス

  1. サイズ
  2. ファイルタイプ

は、この検証を行うには最高の場所とは何ですか?
私の知る限り、サイズとタイプの検証はサーバー側でのみ行うことができます。
サーブレット(MyUploadServletはHttpServletを拡張します)は、実際のファイルのアップロードを行います。
それは唯一の場所ですか?そのようなバリデーションを行うベストプラクティスは何でしょうか?また

、私は:)

答えて

1

検証がより良いサーバ側で行うことができる素晴らしいものだ検証コード(画像ファイルの種類とサイズ)を、得ることができます。 基本的には、サイズ検証のための2つのステップをお勧めします:

1)コンテンツ長のHTTPヘッダーを検証します。 request.getContentLength()

2)ヘッダーが利用できない場合は、入力ストリームを読み取っている間に実際のサイズ検証を行います。限界に達すると、例外がスローされます。

gwtクライアント側では、例外を検証して適切なエラーを表示できます。

ファイルの種類を特定することはそれほど簡単ではありません。ファイル名の拡張子を確認するだけで、ファイルが実際にサーバーにアップロードされた後でファイルタイプ固有の検証を使用することができます。

+0

ありがとうアレクセイ。バリデーターのクラスが違うように、このようなバリデーションを行うために私たちが従うべきベストプラクティス(コード構成に関して)にもっと興味があったのですか?同じサーブレット内にある可能性がありますか?バリデーション値はどこから来るのですか?スプリングファイルか他の場所?私はこの時間を説明することができるといいですね:) – user1270392

+0

春を使用する場合は、アップロード処理にspring mvcを使用できます。春の設定では、MultipartResolverを定義する必要があります: ' <!バイト単位の最大ファイルサイズ - > <プロパティ名= "maxUploadSize" value = "100000" /> 'したがって、春のフレームワークで検証が行われます。 –

+0

これはトピックhttp://www.mkyong.com/spring-mvc/spring-mvc-file-upload-example/の素敵な記事です –

0

HTML 5にはFile APIがさまざまにサポートされています。これは、一部のブラウザではサーバーと通信する前にアップロードするファイルのサイズを指定できることを意味しています。あなたが使用しているブラウザについて何かを仮定することができる場合は、html 5 file api sizeの行に沿って何かを検索し、あなたのケースでそれを使用できるかどうかを確認することができます。

関連する問題