Class PartEventHttpMessageReader

java.lang.Object
org.springframework.http.codec.LoggingCodecSupport
org.springframework.http.codec.multipart.PartEventHttpMessageReader
All Implemented Interfaces:
HttpMessageReader<PartEvent>

public class PartEventHttpMessageReader extends LoggingCodecSupport implements HttpMessageReader<PartEvent>
HttpMessageReader for parsing "multipart/form-data" requests to a stream of PartEvent elements.
Since:
6.0
Author:
Arjen Poutsma
See Also:
  • Constructor Details

    • PartEventHttpMessageReader

      public PartEventHttpMessageReader()
  • Method Details

    • getMaxInMemorySize

      public int getMaxInMemorySize()
      Get the configured maximum in-memory size.
    • setMaxInMemorySize

      public void setMaxInMemorySize(int maxInMemorySize)
      Configure the maximum amount of memory allowed for form fields. When the limit is exceeded, form fields parts are rejected with DataBufferLimitException.

      By default this is set to 256K.

      Parameters:
      maxInMemorySize - the in-memory limit in bytes; if set to -1 the entire contents will be stored in memory
    • setMaxHeadersSize

      public void setMaxHeadersSize(int byteCount)
      Configure the maximum amount of memory that is allowed per headers section of each part. Defaults to 10K.
      Parameters:
      byteCount - the maximum amount of memory for headers
    • setHeadersCharset

      public void setHeadersCharset(Charset headersCharset)
      Set the character set used to decode headers.

      Defaults to UTF-8 as per RFC 7578.

      Parameters:
      headersCharset - the charset to use for decoding headers
      See Also:
    • getReadableMediaTypes

      public List<MediaType> getReadableMediaTypes()
      Description copied from interface: HttpMessageReader
      Return the list of media types supported by this reader. The list may not apply to every possible target element type and calls to this method should typically be guarded via canWrite(elementType, null). The list may also exclude media types supported only for a specific element type. Alternatively, use HttpMessageReader.getReadableMediaTypes(ResolvableType) for a more precise list.
      Specified by:
      getReadableMediaTypes in interface HttpMessageReader<PartEvent>
      Returns:
      the general list of supported media types
    • canRead

      public boolean canRead(ResolvableType elementType, @Nullable MediaType mediaType)
      Description copied from interface: HttpMessageReader
      Whether the given object type is supported by this reader.
      Specified by:
      canRead in interface HttpMessageReader<PartEvent>
      Parameters:
      elementType - the type of object to check
      mediaType - the media type for the read (possibly null)
      Returns:
      true if readable, false otherwise
    • readMono

      public reactor.core.publisher.Mono<PartEvent> readMono(ResolvableType elementType, ReactiveHttpInputMessage message, Map<String,Object> hints)
      Description copied from interface: HttpMessageReader
      Read from the input message and decode to a single object.
      Specified by:
      readMono in interface HttpMessageReader<PartEvent>
      Parameters:
      elementType - the type of objects in the stream which must have been previously checked via HttpMessageReader.canRead(ResolvableType, MediaType)
      message - the message to read from
      hints - additional information about how to read and decode the input
      Returns:
      the decoded object
    • read

      public reactor.core.publisher.Flux<PartEvent> read(ResolvableType elementType, ReactiveHttpInputMessage message, Map<String,Object> hints)
      Description copied from interface: HttpMessageReader
      Read from the input message and decode to a stream of objects.
      Specified by:
      read in interface HttpMessageReader<PartEvent>
      Parameters:
      elementType - the type of objects in the stream which must have been previously checked via HttpMessageReader.canRead(ResolvableType, MediaType)
      message - the message to read from
      hints - additional information about how to read and decode the input
      Returns:
      the decoded stream of elements