public class CommonsMultipartResolver extends CommonsFileUploadSupport implements MultipartResolver, ServletContextAware
MultipartResolver 実装。このリゾルバーバリアントは、アプリケーション内のローカル FileUpload ライブラリに委譲し、サーブレットコンテナー間で最大の移植性を提供します。Commons FileUpload は、従来、任意の "multipart/" 型の POST リクエストを解析します。サポートされている HTTP メソッドは、setSupportedMethods(java.lang.String...) を介してカスタマイズできます。
Bean プロパティとして "maxUploadSize"、"maxInMemorySize"、"defaultEncoding" 設定を提供します (CommonsFileUploadSupport から継承)。デフォルト値と許容値の詳細については、対応する ServletFileUpload/DiskFileItemFactory プロパティ ( "sizeMax"、"sizeThreshold"、"headerEncoding" ) を参照してください。
一時ファイルをサーブレットコンテナーの一時ディレクトリに保存します。アプリケーションコンテキストによって、 または ServletContext を取得するコンストラクターによって(スタンドアロンで使用するために)初期化する必要があります。
メモ: 一般的な代替手段は StandardServletMultipartResolver であり、サーブレットコンテナー自体のマルチパートパーサーに委譲します。設定はコンテナーレベルで行われ、コンテナー固有の制限がある可能性があります。
CommonsMultipartResolver(ServletContext), setResolveLazily(boolean), setSupportedMethods(java.lang.String...), ServletFileUpload, DiskFileItemFactory, StandardServletMultipartResolverCommonsFileUploadSupport.MultipartParsingResultlogger| コンストラクターと説明 |
|---|
CommonsMultipartResolver()Bean として使用するコンストラクター。 |
CommonsMultipartResolver(ServletContextEE servletContext) スタンドアロンで使用するためのコンストラクター。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
void | cleanupMultipart(MultipartHttpServletRequest request) アップロードされたファイルのストレージなど、マルチパート処理に使用されるリソースをクリーンアップします。 |
protected StringSE | determineEncoding(HttpServletRequestEE request) 指定されたリクエストのエンコーディングを決定します。 |
boolean | isMultipart(HttpServletRequestEE request) 指定されたリクエストにマルチパートコンテンツが含まれているかどうかを判断します。 |
protected org.apache.commons.fileupload.FileUpload | newFileUpload(org.apache.commons.fileupload.FileItemFactory fileItemFactory) 基礎となる org.apache.commons.fileupload.servlet.ServletFileUpload インスタンスを初期化します。 |
protected CommonsFileUploadSupport.MultipartParsingResult | parseRequest(HttpServletRequestEE request) 指定されたサーブレットリクエストを解析し、そのマルチパート要素を解決します。 |
MultipartHttpServletRequest | resolveMultipart(HttpServletRequestEE request) 指定された HTTP リクエストをマルチパートファイルとパラメーターに解析し、リクエストをファイル記述子へのアクセスを提供する MultipartHttpServletRequest オブジェクト内にラップし、標準の ServletRequest メソッドを介して含まれるパラメーターにアクセスできるようにします。 |
void | setResolveLazily(boolean resolveLazily) ファイルまたはパラメーターのアクセス時にマルチパートリクエストを遅延解決するかどうかを設定します。 |
void | setServletContext(ServletContextEE servletContext) このオブジェクトが実行される ServletContextEE を設定します。 |
void | setSupportedMethods(StringSE... supportedMethods) サポートされているメソッドを HTTP メソッド名の配列として指定します。 |
cleanupFileItems, createMultipartFile, getDefaultEncoding, getFileItemFactory, getFileUpload, isUploadTempDirSpecified, newFileItemFactory, parseFileItems, prepareFileUpload, setDefaultEncoding, setMaxInMemorySize, setMaxUploadSize, setMaxUploadSizePerFile, setPreserveFilename, setUploadTempDircloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEpublic CommonsMultipartResolver()
public CommonsMultipartResolver(ServletContextEE servletContext)
servletContext - 使用する ServletContextpublic void setResolveLazily(boolean resolveLazily)
デフォルトは "false" で、マルチパート要素をすぐに解決し、resolveMultipart(javax.servlet.http.HttpServletRequest) 呼び出し時に対応する例外をスローします。遅延マルチパート解析の場合はこれを "true" に切り替え、アプリケーションがマルチパートファイルまたはパラメーターを取得しようとすると解析例外をスローします。
public void setSupportedMethods(StringSE... supportedMethods)
Spring プロパティ値として構成されている場合、これはコンマ区切りの文字列にすることができます。「POST、PUT」。
protected org.apache.commons.fileupload.FileUpload newFileUpload(org.apache.commons.fileupload.FileItemFactory fileItemFactory)
org.apache.commons.fileupload.servlet.ServletFileUpload インスタンスを初期化します。テスト目的などでカスタムサブクラスを使用するためにオーバーライドすることができます。CommonsFileUploadSupport の newFileUpload fileItemFactory - 使用するコモンズ FileItemFactorypublic void setServletContext(ServletContextEE servletContext)
ServletContextAwareServletContextEE を設定します。 通常の Bean プロパティの設定後、InitializingBean の afterPropertiesSet またはカスタム init メソッドのような初期コールバックの前に呼び出されます。ApplicationContextAware の setApplicationContext の後に呼び出されます。
ServletContextAware の setServletContext servletContext - このオブジェクトによって使用される ServletContext オブジェクト InitializingBean.afterPropertiesSet(), ApplicationContextAware.setApplicationContext(org.springframework.context.ApplicationContext)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()EEprotected CommonsFileUploadSupport.MultipartParsingResult parseRequest(HttpServletRequestEE request) throws MultipartException
request - 解析するリクエスト MultipartException - マルチパート解決が失敗した場合。protected StringSE determineEncoding(HttpServletRequestEE request)
デフォルトの実装では、リクエストのエンコーディングをチェックし、このリゾルバーに指定されているデフォルトのエンコーディングにフォールバックします。
request - 現在の HTTP リクエスト null)ServletRequest.getCharacterEncoding()EE, CommonsFileUploadSupport.setDefaultEncoding(java.lang.String)public void cleanupMultipart(MultipartHttpServletRequest request)
MultipartResolverMultipartResolver の cleanupMultipart request - リソースをクリーンアップするリクエスト