Class MockMultipartFile
- All Implemented Interfaces:
InputStreamSource
,MultipartFile
MultipartFile
interface.
Useful in conjunction with a MockMultipartHttpServletRequest
for testing application controllers that access multipart uploads.
- Since:
- 2.0
- Author:
- Juergen Hoeller, Eric Crampton
- See Also:
-
Constructor Summary
ConstructorDescriptionMockMultipartFile
(String name, byte[] content) Create a new MockMultipartFile with the given content.MockMultipartFile
(String name, InputStream contentStream) Create a new MockMultipartFile with the given content.MockMultipartFile
(String name, String originalFilename, String contentType, byte[] content) Create a new MockMultipartFile with the given content.MockMultipartFile
(String name, String originalFilename, String contentType, InputStream contentStream) Create a new MockMultipartFile with the given content. -
Method Summary
Modifier and TypeMethodDescriptionbyte[]
getBytes()
Return the contents of the file as an array of bytes.Return the content type of the file.Return an InputStream to read the contents of the file from.getName()
Return the name of the parameter in the multipart form.Return the original filename in the client's filesystem.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.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.springframework.web.multipart.MultipartFile
getResource, transferTo
-
Constructor Details
-
MockMultipartFile
Create a new MockMultipartFile with the given content.- Parameters:
name
- the name of the filecontent
- the content of the file
-
MockMultipartFile
Create a new MockMultipartFile with the given content.- Parameters:
name
- the name of the filecontentStream
- the content of the file as stream- Throws:
IOException
- if reading from the stream failed
-
MockMultipartFile
public MockMultipartFile(String name, @Nullable String originalFilename, @Nullable String contentType, @Nullable byte[] content) Create a new MockMultipartFile with the given content.- Parameters:
name
- the name of the fileoriginalFilename
- the original filename (as on the client's machine)contentType
- the content type (if known)content
- the content of the file
-
MockMultipartFile
public MockMultipartFile(String name, @Nullable String originalFilename, @Nullable String contentType, InputStream contentStream) throws IOException Create a new MockMultipartFile with the given content.- Parameters:
name
- the name of the fileoriginalFilename
- the original filename (as on the client's machine)contentType
- the content type (if known)contentStream
- the content of the file as stream- Throws:
IOException
- if reading from the stream failed
-
-
Method Details
-
getName
Description copied from interface:MultipartFile
Return the name of the parameter in the multipart form.- Specified by:
getName
in interfaceMultipartFile
- Returns:
- the name of the parameter (never
null
or empty)
-
getOriginalFilename
Description copied from interface:MultipartFile
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.
Note: Please keep in mind this filename is supplied by the client and should not be used blindly. In addition to not using the directory portion, the file name could also contain characters such as ".." and others that can be used maliciously. It is recommended to not use this filename directly. Preferably generate a unique one and save this one somewhere for reference, if necessary.
- Specified by:
getOriginalFilename
in interfaceMultipartFile
- 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:
-
getContentType
Description copied from interface:MultipartFile
Return the content type of the file.- Specified by:
getContentType
in interfaceMultipartFile
- Returns:
- the content type, or
null
if not defined (or no file has been chosen in the multipart form)
-
isEmpty
public boolean isEmpty()Description copied from interface:MultipartFile
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.- Specified by:
isEmpty
in interfaceMultipartFile
-
getSize
public long getSize()Description copied from interface:MultipartFile
Return the size of the file in bytes.- Specified by:
getSize
in interfaceMultipartFile
- Returns:
- the size of the file, or 0 if empty
-
getBytes
Description copied from interface:MultipartFile
Return the contents of the file as an array of bytes.- Specified by:
getBytes
in interfaceMultipartFile
- 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
Description copied from interface:MultipartFile
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
- Specified by:
getInputStream
in interfaceMultipartFile
- 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)- See Also:
-
transferTo
Description copied from interface:MultipartFile
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 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.
- Specified by:
transferTo
in interfaceMultipartFile
- 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:
-