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
, StandardServletMultipartResolver
CommonsFileUploadSupport.MultipartParsingResult
logger
コンストラクターと説明 |
---|
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) このオブジェクトが実行される ServletContext EE を設定します。 |
void | setSupportedMethods(StringSE... supportedMethods) サポートされているメソッドを HTTP メソッド名の配列として指定します。 |
cleanupFileItems, createMultipartFile, getDefaultEncoding, getFileItemFactory, getFileUpload, isUploadTempDirSpecified, newFileItemFactory, parseFileItems, prepareFileUpload, setDefaultEncoding, setMaxInMemorySize, setMaxUploadSize, setMaxUploadSizePerFile, setPreserveFilename, setUploadTempDir
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public 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)
ServletContextAware
ServletContext
EE を設定します。 通常の 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
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()
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)
MultipartResolver
MultipartResolver
の cleanupMultipart
request
- リソースをクリーンアップするリクエスト