org.springframework.web.multipart

## Interface MultipartFile

- All Known Implementing Classes:
    CommonsMultipartFile, MockMultipartFile

      public interface MultipartFile

  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 storages 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

    Methods
    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.

- - ### 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

          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

    - #### getContentType

          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 stream.
      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)

    - #### 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 file has been moved in the filesystem, this operation cannot be invoked again. Therefore, call this method just once to be able to work with any storage mechanism.

      Parameters:
        `dest` - the destination file
      Throws:
        `IOException` - in case of reading or writing errors
        `IllegalStateException` - if the file has already been moved in the filesystem and is not available anymore for another transfer