public class StandardServletMultipartResolver extends ObjectSE implements MultipartResolver
Part
EE API に基づく MultipartResolver
インターフェースの標準実装。"multipartResolver" Bean として Spring DispatcherServlet コンテキストに追加します。Bean レベルでの追加構成は不要です(以下を参照)。 このリゾルバーバリアントは、サーブレットコンテナーのマルチパートパーサーをそのまま使用し、アプリケーションをコンテナー実装の違いにさらす可能性があります。アプリケーション内でローカルコモンズ FileUpload ライブラリを使用して、サーブレットコンテナー間で最大の移植性を提供する代替実装については、CommonsMultipartResolver
を参照してください。また、strict Servlet compliance
のこのリゾルバーの構成オプションを参照して、Spring の MultipartHttpServletRequest
のデータのみを形成するための適用範囲を狭めてください。
注意 : Servlet 3.0 ベースのマルチパート解析を使用するには、影響を受けるサーブレットを web.xml
の "multipart-config" セクション、プログラムによるサーブレット登録の MultipartConfigElement
EE、または(カスタムサーブレットクラスの場合)MultipartConfig
EE でマークする必要があります。サーブレットクラスのアノテーション。最大サイズや保管場所などの構成設定は、そのサーブレット登録レベルで適用する必要があります。Servlet 3.0 では、MultipartResolver レベルで設定することはできません。
public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { // ... @Override protected void customizeRegistration(ServletRegistration.Dynamic registration) { // Optionally also set maxFileSize, maxRequestSize, fileSizeThreshold registration.setMultipartConfig(new MultipartConfigElement("/tmp")); } }
setResolveLazily(boolean)
, setStrictServletCompliance(boolean)
, HttpServletRequest.getParts()
EE, CommonsMultipartResolver
コンストラクターと説明 |
---|
StandardServletMultipartResolver() |
修飾子と型 | メソッドと説明 |
---|---|
void | cleanupMultipart(MultipartHttpServletRequest request) アップロードされたファイルのストレージなど、マルチパート処理に使用されるリソースをクリーンアップします。 |
boolean | isMultipart(HttpServletRequestEE request) 指定されたリクエストにマルチパートコンテンツが含まれているかどうかを判断します。 |
MultipartHttpServletRequest | resolveMultipart(HttpServletRequestEE request) 指定された HTTP リクエストをマルチパートファイルとパラメーターに解析し、リクエストをファイル記述子へのアクセスを提供する MultipartHttpServletRequest オブジェクト内にラップし、標準の ServletRequest メソッドを介して含まれるパラメーターにアクセスできるようにします。 |
void | setResolveLazily(boolean resolveLazily) ファイルまたはパラメーターのアクセス時にマルチパートリクエストを遅延解決するかどうかを設定します。 |
void | setStrictServletCompliance(boolean strictServletCompliance) このリゾルバーがサーブレット仕様に厳密に準拠する必要があるかどうかを指定し、"multipart/form-data" リクエストに対してのみ開始します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public void setResolveLazily(boolean resolveLazily)
デフォルトは "false" で、マルチパート要素をすぐに解決し、resolveMultipart(javax.servlet.http.HttpServletRequest)
呼び出し時に対応する例外をスローします。遅延マルチパート解析の場合はこれを "true" に切り替え、アプリケーションがマルチパートファイルまたはパラメーターを取得しようとすると解析例外をスローします。
public void setStrictServletCompliance(boolean strictServletCompliance)
デフォルトは "false" で、基盤となるサーブレットコンテナーがサポートしている限り、"multipart/" コンテンツ型のリクエストを処理しようとします(Tomcat などで機能しますが Jetty では機能しません)。一貫性のある移植性、特に Spring の MultipartResolver
メカニズム外の非フォームマルチパートリクエスト型の一貫したカスタム処理のために、このフラグを "true" に切り替えます。"multipart/form-data" リクエストのみが MultipartHttpServletRequest
でラップされます。他の種類のリクエストはそのまま残され、ユーザーコードでのカスタム処理が可能になります。
Commons FileUpload、CommonsMultipartResolver
は、すべての "multipart/" リクエスト型をサポートすることに注意してください。ただし、処理は、標準のサーブレットマルチパートパーサーでは実行できない POST リクエストに制限されます。
public boolean isMultipart(HttpServletRequestEE request)
MultipartResolver
通常、コンテンツ型 "multipart/form-data" をチェックしますが、実際に受け入れられるリクエストは、リゾルバー実装の機能によって異なる場合があります。
MultipartResolver
の isMultipart
request
- 評価されるサーブレットリクエスト public MultipartHttpServletRequest resolveMultipart(HttpServletRequestEE request) throws MultipartException
MultipartResolver
MultipartHttpServletRequest
オブジェクト内にラップし、標準の ServletRequest メソッドを介して含まれるパラメーターにアクセスできるようにします。MultipartResolver
の resolveMultipart
request
- ラップするサーブレットリクエスト (マルチパートコンテンツ型である必要があります)MultipartException
- サーブレットリクエストがマルチパートでない場合、または実装固有の問題が発生した場合 (ファイルサイズの制限を超えるなど)MultipartRequest.getFile(java.lang.String)
, MultipartRequest.getFileNames()
, MultipartRequest.getFileMap()
, ServletRequest.getParameter(java.lang.String)
EE, ServletRequest.getParameterNames()
EE, ServletRequest.getParameterMap()
EEpublic void cleanupMultipart(MultipartHttpServletRequest request)
MultipartResolver
MultipartResolver
の cleanupMultipart
request
- リソースをクリーンアップするリクエスト