これは非常に具体的な質問です。FileUpload API について十分な知識を持っている人がここにいることを願っています。
この API を使用したことがある場合は、ファイルの最大サイズを超えると、FileSizeLimitExceededException がスローされるため、次の項目を読み取ることができず、hasNext()
メソッドをもう一度呼び出して次の項目に反復することを試みることを知っておく必要があります。入力ストリームが閉じられ、再度読み取ろうとすると、IOException がスローされます。
次のパラメータを読み取ることができないため、このシナリオは非常に悪いです。次のフォームを想定します。
<form action="..." method="post" enctype="multipart/form-data">
<input type="hidden" name="param1" value="foo"/>
<input type="file" name="myFile"/><br/>
<input type="hidden" name="param2" value="bar"/>
<input type="submit"/>
</form>
現在、ファイルは最大サイズを超えています。結果:
「param1」が読み込まれます。
「myFile」は FileSizeLimitExceededException を生成します。
「param2」は読み込まれません。
次の項目 (この場合は「param2」) を読みたいので、API の一部を書き直そうとしていますが、うまくいきませんでした。
誰も同じ問題を抱えていますか?どのように修正しましたか?
ありがとう。
編集:まあ、BalusC によって提案されたソリューションを実装しました。将来のために:
FileUpload ラッパー
FileUpload ラッパーの使用法
このラッパーに他に何か必要があると思われる場合は、それを言ってください。理想はAPI自体を変更して修正することであるため、私はそれを実際の解決策として受け入れません。