インターフェース MultipartResolver
- すべての既知の実装クラス:
StandardServletMultipartResolver
Spring は、次の具体的な実装を提供します。
- サーブレット部分 API の
StandardServletMultipartResolver
アプリケーションがマルチパートリクエストを独自に解析することを選択する可能性があるため、Spring DispatcherServlets に使用されるデフォルトのリゾルバー実装はありません。実装を定義するには、DispatcherServlet's アプリケーションコンテキストで ID "multipartResolver" を持つ Bean を作成します。このようなリゾルバーは、その DispatcherServlet によって処理されるすべてのリクエストに適用されます。
DispatcherServlet がマルチパートリクエストを検出すると、構成された MultipartResolver を介してそれを解決し、ラップされた HttpServletRequestEE を渡します。コントローラーは、指定されたリクエストを MultipartHttpServletRequest インターフェースにキャストできます。これにより、任意の MultipartFiles へのアクセスが可能になります。このキャストは、実際のマルチパートリクエストの場合にのみサポートされることに注意してください。
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
MultipartFile multipartFile = multipartRequest.getFile("image");
...
} 直接アクセスの代わりに、コマンドまたはフォームコントローラーは、ByteArrayMultipartFileEditor または StringMultipartFileEditor をデータバインダーに登録して、マルチパートコンテンツを自動的に適用して Bean プロパティを形成できます。DispatcherServlet で MultipartResolver を使用する代わりに、MultipartFilter を web.xml に登録できます。ルートアプリケーションコンテキストの対応する MultipartResolver Bean に委譲します。これは主に、Spring 独自の Web MVC フレームワークを使用しないアプリケーションを対象としています。
メモ: アプリケーションコードから MultipartResolver 自体にアクセスする必要はほとんどありません。MultipartHttpServletRequests をコントローラーで使用できるようにするだけで、バックグラウンドで機能します。
- 導入:
- 29.09.2003
- 作成者:
- Juergen Hoeller, Trevor D. Cook
- 関連事項:
メソッドのサマリー
修飾子と型メソッド説明voidアップロードされたファイルのストレージなど、マルチパート処理に使用されるリソースをすべてクリーンアップします。booleanisMultipart(HttpServletRequestEE request) 指定されたリクエストにマルチパートコンテンツが含まれているかどうかを判断します。resolveMultipart(HttpServletRequestEE request) 指定された HTTP リクエストをマルチパートファイルとパラメーターに解析し、リクエストをファイル記述子へのアクセスを提供するMultipartHttpServletRequestオブジェクト内にラップし、標準の ServletRequest メソッドを介して含まれるパラメーターにアクセスできるようにします。
メソッドの詳細
isMultipart
指定されたリクエストにマルチパートコンテンツが含まれているかどうかを判断します。通常、コンテンツ型 "multipart/form-data" をチェックしますが、実際に受け入れられるリクエストは、リゾルバー実装の機能によって異なる場合があります。
- パラメーター:
request- 評価されるサーブレットリクエスト- 戻り値:
- リクエストにマルチパートコンテンツが含まれているかどうか
resolveMultipart
MultipartHttpServletRequest resolveMultipart(HttpServletRequestEE request) throws MultipartException 指定された HTTP リクエストをマルチパートファイルとパラメーターに解析し、リクエストをファイル記述子へのアクセスを提供するMultipartHttpServletRequestオブジェクト内にラップし、標準の ServletRequest メソッドを介して含まれるパラメーターにアクセスできるようにします。- パラメーター:
request- ラップするサーブレットリクエスト (マルチパートコンテンツ型である必要があります)- 戻り値:
- ラップされたサーブレットリクエスト
- 例外:
MultipartException- サーブレットリクエストがマルチパートでない場合、または実装固有の問題が発生した場合 (ファイルサイズの制限を超えるなど)- 関連事項:
cleanupMultipart
アップロードされたファイルのストレージなど、マルチパート処理に使用されるリソースをすべてクリーンアップします。- パラメーター:
request- リソースをクリーンアップするリクエスト