Interface MultipartFile
- All Superinterfaces:
InputStreamSource
- All Known Implementing Classes:
CommonsMultipartFile
,MockMultipartFile
public interface MultipartFile extends InputStreamSource
A representation of an uploaded file received in a multipart request.The file contents are either stored in memory or temporarily on disk. In either case, the user is responsible for copying file contents to a session-level or persistent store as and if desired. The temporary storage will be cleared at the end of request processing.
- Since:
- 29.09.2003
- Author:
- Juergen Hoeller, Trevor D. Cook
- See Also:
MultipartHttpServletRequest
,MultipartResolver
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description byte[]
getBytes()
Return the contents of the file as an array of bytes.String
getContentType()
Return the content type of the file.InputStream
getInputStream()
Return an InputStream to read the contents of the file from.String
getName()
Return the name of the parameter in the multipart form.String
getOriginalFilename()
Return the original filename in the client's filesystem.default Resource
getResource()
Return a Resource representation of this MultipartFile.long
getSize()
Return the size of the file in bytes.boolean
isEmpty()
Return whether the uploaded file is empty, that is, either no file has been chosen in the multipart form or the chosen file has no content.void
transferTo(File dest)
Transfer the received file to the given destination file.default void
transferTo(Path dest)
Transfer the received file to the given destination file.
Method Detail
getName
String getName()
Return the name of the parameter in the multipart form.- Returns:
- the name of the parameter (never
null
or empty)
getOriginalFilename
@Nullable String getOriginalFilename()
Return the original filename in the client's filesystem.This may contain path information depending on the browser used, but it typically will not with any other than Opera.
- Returns:
- the original filename, or the empty String if no file has been chosen in the multipart form, or
null
if not defined or not available - See Also:
FileItem.getName()
,CommonsMultipartFile.setPreserveFilename(boolean)
getContentType
@Nullable String getContentType()
Return the content type of the file.- Returns:
- the content type, or
null
if not defined (or no file has been chosen in the multipart form)
isEmpty
boolean isEmpty()
Return whether the uploaded file is empty, that is, either no file has been chosen in the multipart form or the chosen file has no content.
getSize
long getSize()
Return the size of the file in bytes.- Returns:
- the size of the file, or 0 if empty
getBytes
byte[] getBytes() throws IOException
Return the contents of the file as an array of bytes.- Returns:
- the contents of the file as bytes, or an empty byte array if empty
- Throws:
IOException
- in case of access errors (if the temporary store fails)
getInputStream
InputStream getInputStream() throws IOException
Return an InputStream to read the contents of the file from.The user is responsible for closing the returned stream.
- Specified by:
getInputStream
in interfaceInputStreamSource
- Returns:
- the contents of the file as stream, or an empty stream if empty
- Throws:
IOException
- in case of access errors (if the temporary store fails)
getResource
default Resource getResource()
Return a Resource representation of this MultipartFile. This can be used as input to theRestTemplate
or theWebClient
to expose content length and the filename along with the InputStream.- Returns:
- this MultipartFile adapted to the Resource contract
- Since:
- 5.1
transferTo
void transferTo(File dest) throws IOException, IllegalStateException
Transfer the received file to the given destination file.This may either move the file in the filesystem, copy the file in the filesystem, or save memory-held contents to the destination file. If the destination file already exists, it will be deleted first.
If the target file has been moved in the filesystem, this operation cannot be invoked again afterwards. Therefore, call this method just once in order to work with any storage mechanism.
NOTE: Depending on the underlying provider, temporary storage may be container-dependent, including the base directory for relative destinations specified here (e.g. with Servlet 3.0 multipart handling). For absolute destinations, the target file may get renamed/moved from its temporary location or newly copied, even if a temporary copy already exists.
- Parameters:
dest
- the destination file (typically absolute)- Throws:
IOException
- in case of reading or writing errorsIllegalStateException
- if the file has already been moved in the filesystem and is not available anymore for another transfer- See Also:
FileItem.write(File)
,Part.write(String)
transferTo
default void transferTo(Path dest) throws IOException, IllegalStateException
Transfer the received file to the given destination file.The default implementation simply copies the file input stream.
- Throws:
IOException
IllegalStateException
- Since:
- 5.1
- See Also:
getInputStream()
,transferTo(File)