public class StandardServletMultipartResolver extends ObjectSE implements MultipartResolver
PartEE API に基づく MultipartResolver インターフェースの標準実装。Bean レベルでの追加構成なしで、Spring DispatcherServlet コンテキストに "multipartResolver" Bean として追加されます (以下を参照)。 このリゾルバーバリアントは、サーブレットコンテナーのマルチパートパーサーをそのまま使用し、アプリケーションをコンテナー実装の違いにさらす可能性があります。アプリケーション内でローカルコモンズ FileUpload ライブラリを使用して、サーブレットコンテナー間で最大の移植性を提供する代替実装については、CommonsMultipartResolver を参照してください。また、strict Servlet compliance のこのリゾルバーの構成オプションを参照して、Spring の MultipartHttpServletRequest のデータのみを形成するための適用範囲を狭めてください。
注意 : Servlet 3.0 ベースのマルチパート解析を使用するには、影響を受けるサーブレットを web.xml の "multipart-config" セクション、プログラムによるサーブレット登録の MultipartConfigElementEE、または(カスタムサーブレットクラスの場合)MultipartConfigEE でマークする必要があります。サーブレットクラスのアノテーション。最大サイズや保管場所などの構成設定は、そのサーブレット登録レベルで適用する必要があります。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, waitSEpublic 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
MultipartResolverMultipartHttpServletRequest オブジェクト内にラップし、標準の 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)
MultipartResolverMultipartResolver の cleanupMultipart request - リソースをクリーンアップするリクエスト