インターフェース MultipartResolver
- すべての既知の実装クラス:
StandardServletMultipartResolver
Spring は、次の具体的な実装を提供します。
- サーブレット部分 API の
StandardServletMultipartResolver
アプリケーションがマルチパートリクエストを独自に解析することを選択する可能性があるため、Spring DispatcherServlets
に使用されるデフォルトのリゾルバー実装はありません。実装を定義するには、DispatcherServlet's
アプリケーションコンテキストで ID "multipartResolver" を持つ Bean を作成します。このようなリゾルバーは、その DispatcherServlet
によって処理されるすべてのリクエストに適用されます。
DispatcherServlet
がマルチパートリクエストを検出すると、構成された MultipartResolver
を介してそれを解決し、ラップされた HttpServletRequest
EE を渡します。コントローラーは、指定されたリクエストを 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
アップロードされたファイルのストレージなど、マルチパート処理に使用されるリソースをすべてクリーンアップします。boolean
isMultipart
(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
- リソースをクリーンアップするリクエスト