Struts2 で適切に使用する方法がFileUploadInterceptor
わかりません。私はすべてを配線しており、動作しています。ファイル拡張子と最大ファイル サイズを指定でき、実際に機能します。問題は次のとおりです。
- 最大ファイル サイズを 100 MB に指定します
- ユーザーが 110MB のファイルを
JakartaMultiPartRequest
アップロードすると、クラスがヘルプ共通file-upload
ライブラリを使用してファイルのアップロードを処理することがわかります。これは、ファイル アップロード インターセプターの前に発生します。 - ユーザーが数分間待ってファイルのアップロードが完了すると、ファイル アップロード インターセプターが起動し、ファイルが大きすぎることをユーザーに通知します。
イベントの順序に問題があります。content-length ヘッダーを見て、(アップロードする前に) ファイルが大きすぎることをすぐにユーザーに伝えたいと思います。ヘッダーが常にあるとは限らないことは理解していますが、ある場合は使用したいと思います。
クラスを上書きする以外JakartaMultiPartRequest
に、これを行う方法がわかりません。
編集:私が理解しているシーケンスは次のとおりです。
- ユーザーは、ファイルのアップロードでサーバーにマルチパート リクエストを送信します。
- Struts2 の JakartaMultiPartRequest はリクエストを解析し、Struts2 temp フォルダーにアップロードします。
- フローは最終的に、最大ファイル サイズとファイル拡張子がチェックされるファイル アップロード インターセプターに到達します。
上記から、アップロードがステップ 2 で行われたことは明らかです。ファイル全体がサーバー上にあり、ファイルアップロードインターセプターがファイルが大きすぎることを検出した後でのみです。