インターフェース MultipartResolver

すべての既知の実装クラス:
StandardServletMultipartResolver

public interface MultipartResolver
RFC 1867 に準拠したマルチパートファイルアップロードの解決のための戦略インターフェース。実装は通常、アプリケーションコンテキスト内とスタンドアロンの両方で使用できます。

Spring は、次の具体的な実装を提供します。

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 プロパティを形成できます。

DispatcherServletMultipartResolver を使用する代わりに、MultipartFilter を web.xml に登録できます。ルートアプリケーションコンテキストの対応する MultipartResolver Bean に委譲します。これは主に、Spring 独自の Web MVC フレームワークを使用しないアプリケーションを対象としています。

メモ: アプリケーションコードから MultipartResolver 自体にアクセスする必要はほとんどありません。MultipartHttpServletRequests をコントローラーで使用できるようにするだけで、バックグラウンドで機能します。

導入:
29.09.2003
作成者:
Juergen Hoeller, Trevor D. Cook
関連事項:
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    アップロードされたファイルのストレージなど、マルチパート処理に使用されるリソースをすべてクリーンアップします。
    boolean
    指定されたリクエストにマルチパートコンテンツが含まれているかどうかを判断します。
    指定された HTTP リクエストをマルチパートファイルとパラメーターに解析し、リクエストをファイル記述子へのアクセスを提供する MultipartHttpServletRequest オブジェクト内にラップし、標準の ServletRequest メソッドを介して含まれるパラメーターにアクセスできるようにします。
  • メソッドの詳細

    • isMultipart

      boolean isMultipart(HttpServletRequestEE request)
      指定されたリクエストにマルチパートコンテンツが含まれているかどうかを判断します。

      通常、コンテンツ型 "multipart/form-data" をチェックしますが、実際に受け入れられるリクエストは、リゾルバー実装の機能によって異なる場合があります。

      パラメーター:
      request - 評価されるサーブレットリクエスト
      戻り値:
      リクエストにマルチパートコンテンツが含まれているかどうか
    • resolveMultipart

      指定された HTTP リクエストをマルチパートファイルとパラメーターに解析し、リクエストをファイル記述子へのアクセスを提供する MultipartHttpServletRequest オブジェクト内にラップし、標準の ServletRequest メソッドを介して含まれるパラメーターにアクセスできるようにします。
      パラメーター:
      request - ラップするサーブレットリクエスト (マルチパートコンテンツ型である必要があります)
      戻り値:
      ラップされたサーブレットリクエスト
      例外:
      MultipartException - サーブレットリクエストがマルチパートでない場合、または実装固有の問題が発生した場合 (ファイルサイズの制限を超えるなど)
      関連事項:
    • cleanupMultipart

      void cleanupMultipart(MultipartHttpServletRequest request)
      アップロードされたファイルのストレージなど、マルチパート処理に使用されるリソースをすべてクリーンアップします。
      パラメーター:
      request - リソースをクリーンアップするリクエスト