Class MultiPart.Part
- All Implemented Interfaces:
Closeable
,AutoCloseable
- Direct Known Subclasses:
MultiPart.ByteBufferPart
,MultiPart.ChunksPart
,MultiPart.ContentSourcePart
,MultiPart.PathPart
,MultiPartByteRanges.Part
- Enclosing class:
- MultiPart
A single part of a multipart content.
A part has an optional name, an optional fileName, optional headers and an optional content.
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
void
delete()
void
getContentAsString
(Charset defaultCharset) Returns the content of this part as a string.Returns the content of this part as aContent.Source
.Returns the file name of this part, as specified by theHttpHeader.CONTENT_DISPOSITION
'sfilename
parameter.long
getName()
Returns the name of this part, as specified by theHttpHeader.CONTENT_DISPOSITION
'sname
parameter.abstract Content.Source
Returns the content of this part as a newContent.Source
void
Writes the content of this part to the given path.
-
Constructor Details
-
Part
-
-
Method Details
-
getName
Returns the name of this part, as specified by the
HttpHeader.CONTENT_DISPOSITION
'sname
parameter.While the
name
parameter is mandatory per RFC 7578, older HTTP clients may not send it.- Returns:
- the name of this part, or
null
if there is no name
-
getFileName
Returns the file name of this part, as specified by the
HttpHeader.CONTENT_DISPOSITION
'sfilename
parameter.While the
filename
parameter is mandatory per RFC 7578 when uploading files, older HTTP clients may not send it.The file name may be absent if the part is not a file upload.
- Returns:
- the file name of this part, or
null
if there is no file name
-
getContentSource
Returns the content of this part as a
Content.Source
.Calling this method multiple times will return the same instance, which can only be consumed once.
The content type and content encoding are specified in this part's
headers
.The content encoding may be specified by the part named
_charset_
, as specified in RFC 7578, section 4.6.- Returns:
- the content of this part
- See Also:
-
newContentSource
Returns the content of this part as a new
Content.Source
If the content is reproducible, invoking this method multiple times will return a different independent instance for every invocation.
If the content is not reproducible, subsequent calls to this method will return null.
The content type and content encoding are specified in this part's
headers
.The content encoding may be specified by the part named
_charset_
, as specified in RFC 7578, section 4.6.- Returns:
- the content of this part as a new
Content.Source
or null if the content cannot be consumed multiple times. - See Also:
-
getLength
public long getLength() -
getContentAsString
Returns the content of this part as a string.
The charset used to decode the bytes is:
- the
charset
parameter of theHttpHeader.CONTENT_TYPE
header, if non-null; - otherwise, the given
defaultCharset
parameter, if non-null; - otherwise, UTF-8.
- Parameters:
defaultCharset
- the charset to use to decode the bytes, if thecharset
parameter of theContent-Type
header is missing- Returns:
- the content of this part as a string
- the
-
getHeaders
- Returns:
- the headers associated with this part
-
writeTo
Writes the content of this part to the given path.
- Parameters:
path
- the Path to write this part's content to- Throws:
IOException
- if the write fails
-
delete
- Throws:
IOException
-
close
public void close()- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
-
fail
-