マルチパートリゾルバー
org.springframework.web.multipart
パッケージの MultipartResolver
は、ファイルのアップロードを含むマルチパートリクエストを解析するための戦略です。サーブレットマルチパートリクエスト解析には、コンテナーベースの StandardServletMultipartResolver
実装があります。Apache Commons FileUpload に基づく古い CommonsMultipartResolver
は、新しい Servlet 5.0+ ベースラインを持つ Spring Framework 6.0 では使用できなくなっていることに注意してください。
マルチパート処理を有効にするには、DispatcherServlet
Spring 構成で multipartResolver
という名前で MultipartResolver
Bean を宣言する必要があります。DispatcherServlet
はそれを検出し、受信リクエストに適用します。コンテンツ型が multipart/form-data
の POST を受信すると、リゾルバーはコンテンツを解析し、現在の HttpServletRequest
を MultipartHttpServletRequest
としてラップして、リクエストパラメーターとしてパーツを公開するだけでなく、解決されたファイルへのアクセスを提供します。
サーブレットマルチパート解析
サーブレットのマルチパート解析は、サーブレットコンテナーの構成を通じて有効にする必要があります。そうするには:
Java では、サーブレット登録で
MultipartConfigElement
を設定します。web.xml
で、サーブレット宣言に"<multipart-config>"
セクションを追加します。
次の例は、サーブレット登録で MultipartConfigElement
を設定する方法を示しています。
Java
Kotlin
public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
// ...
@Override
protected void customizeRegistration(ServletRegistration.Dynamic registration) {
// Optionally also set maxFileSize, maxRequestSize, fileSizeThreshold
registration.setMultipartConfig(new MultipartConfigElement("/tmp"));
}
}
class AppInitializer : AbstractAnnotationConfigDispatcherServletInitializer() {
// ...
override fun customizeRegistration(registration: ServletRegistration.Dynamic) {
// Optionally also set maxFileSize, maxRequestSize, fileSizeThreshold
registration.setMultipartConfig(MultipartConfigElement("/tmp"))
}
}
サーブレットのマルチパート構成が整ったら、multipartResolver
という名前の StandardServletMultipartResolver
型の Bean を追加できます。
このリゾルバーバリアントは、サーブレットコンテナーのマルチパートパーサーをそのまま使用し、アプリケーションをコンテナー実装の違いにさらす可能性があります。デフォルトでは、任意の HTTP メソッドを使用して任意の |