public class MockMultipartFile extends Object implements MultipartFile
MultipartFile
interface.
Useful in conjunction with a MockMultipartHttpServletRequest
for testing application controllers that access multipart uploads.
MockMultipartHttpServletRequest
Constructor and Description |
---|
MockMultipartFile(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.
|
Modifier and Type | Method and 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.
|
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.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getResource, transferTo
public MockMultipartFile(String name, @Nullable byte[] content)
name
- the name of the filecontent
- the content of the filepublic MockMultipartFile(String name, InputStream contentStream) throws IOException
name
- the name of the filecontentStream
- the content of the file as streamIOException
- if reading from the stream failedpublic MockMultipartFile(String name, @Nullable String originalFilename, @Nullable String contentType, @Nullable byte[] content)
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 filepublic MockMultipartFile(String name, @Nullable String originalFilename, @Nullable String contentType, InputStream contentStream) throws IOException
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 streamIOException
- if reading from the stream failedpublic String getName()
MultipartFile
getName
in interface MultipartFile
null
or empty)@NonNull public String getOriginalFilename()
MultipartFile
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.
getOriginalFilename
in interface MultipartFile
null
if not defined or not availableFileItem.getName()
,
CommonsMultipartFile.setPreserveFilename(boolean)
,
RFC 7578, Section 4.2,
Unrestricted File Upload@Nullable public String getContentType()
MultipartFile
getContentType
in interface MultipartFile
null
if not defined
(or no file has been chosen in the multipart form)public boolean isEmpty()
MultipartFile
isEmpty
in interface MultipartFile
public long getSize()
MultipartFile
getSize
in interface MultipartFile
public byte[] getBytes() throws IOException
MultipartFile
getBytes
in interface MultipartFile
IOException
- in case of access errors (if the temporary store fails)public InputStream getInputStream() throws IOException
MultipartFile
The user is responsible for closing the returned stream.
getInputStream
in interface InputStreamSource
getInputStream
in interface MultipartFile
IOException
- in case of access errors (if the temporary store fails)Resource.isReadable()
public void transferTo(File dest) throws IOException, IllegalStateException
MultipartFile
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.
transferTo
in interface MultipartFile
dest
- the destination file (typically absolute)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 transferFileItem.write(File)
,
Part.write(String)