org.springframework.web.multipart.commons

Class CommonsMultipartFile

  • java.lang.Object
    • org.springframework.web.multipart.commons.CommonsMultipartFile
    • Field Summary

      Fields 
      Modifier and Type Field and Description
      protected static Log logger 
    • Constructor Summary

      Constructors 
      Constructor and Description
      CommonsMultipartFile(org.apache.commons.fileupload.FileItem fileItem)
      Create an instance wrapping the given FileItem.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method and Description
      byte[] getBytes()
      Return the contents of the file as an array of bytes.
      java.lang.String getContentType()
      Return the content type of the file.
      org.apache.commons.fileupload.FileItem getFileItem()
      Return the underlying org.apache.commons.fileupload.FileItem instance.
      java.io.InputStream getInputStream()
      Return an InputStream to read the contents of the file from.
      java.lang.String getName()
      Return the name of the parameter in the multipart form.
      java.lang.String getOriginalFilename()
      Return the original filename in the client's filesystem.
      long getSize()
      Return the size of the file in bytes.
      java.lang.String getStorageDescription()
      Return a description for the storage location of the multipart content.
      protected boolean isAvailable()
      Determine whether the multipart content is still available.
      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 setPreserveFilename(boolean preserveFilename)
      Set whether to preserve the filename as sent by the client, not stripping off path information in getOriginalFilename().
      void transferTo(java.io.File dest)
      Transfer the received file to the given destination file.
      void transferTo(java.nio.file.Path 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
    • Field Detail

      • logger

        protected static final Log logger
    • Constructor Detail

      • CommonsMultipartFile

        public CommonsMultipartFile(org.apache.commons.fileupload.FileItem fileItem)
        Create an instance wrapping the given FileItem.
        Parameters:
        fileItem - the FileItem to wrap
    • Method Detail

      • getFileItem

        public final org.apache.commons.fileupload.FileItem getFileItem()
        Return the underlying org.apache.commons.fileupload.FileItem instance. There is hardly any need to access this.
      • setPreserveFilename

        public void setPreserveFilename(boolean preserveFilename)
        Set whether to preserve the filename as sent by the client, not stripping off path information in getOriginalFilename().

        Default is "false", stripping off path information that may prefix the actual filename e.g. from Opera. Switch this to "true" for preserving the client-specified filename as-is, including potential path separators.

        Since:
        4.3.5
        See Also:
        getOriginalFilename(), CommonsFileUploadSupport.setPreserveFilename(boolean)
      • getName

        public java.lang.String getName()
        Description copied from interface: MultipartFile
        Return the name of the parameter in the multipart form.
        Specified by:
        getName in interface MultipartFile
        Returns:
        the name of the parameter (never null or empty)
      • getOriginalFilename

        public java.lang.String 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.

        Specified by:
        getOriginalFilename in interface MultipartFile
        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(), setPreserveFilename(boolean)
      • getContentType

        public java.lang.String getContentType()
        Description copied from interface: MultipartFile
        Return the content type of the file.
        Specified by:
        getContentType in interface MultipartFile
        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 interface MultipartFile
      • getSize

        public long getSize()
        Description copied from interface: MultipartFile
        Return the size of the file in bytes.
        Specified by:
        getSize in interface MultipartFile
        Returns:
        the size of the file, or 0 if empty
      • getBytes

        public byte[] getBytes()
        Description copied from interface: MultipartFile
        Return the contents of the file as an array of bytes.
        Specified by:
        getBytes in interface MultipartFile
        Returns:
        the contents of the file as bytes, or an empty byte array if empty
      • getInputStream

        public java.io.InputStream getInputStream()
                                           throws java.io.IOException
        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 interface InputStreamSource
        Specified by:
        getInputStream in interface MultipartFile
        Returns:
        the contents of the file as stream, or an empty stream if empty
        Throws:
        java.io.IOException - in case of access errors (if the temporary store fails)
      • transferTo

        public void transferTo(java.io.File dest)
                        throws java.io.IOException,
                               java.lang.IllegalStateException
        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 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.

        Specified by:
        transferTo in interface MultipartFile
        Parameters:
        dest - the destination file (typically absolute)
        Throws:
        java.io.IOException - in case of reading or writing errors
        java.lang.IllegalStateException - 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

        public void transferTo(java.nio.file.Path dest)
                        throws java.io.IOException,
                               java.lang.IllegalStateException
        Description copied from interface: MultipartFile
        Transfer the received file to the given destination file.

        The default implementation simply copies the file input stream.

        Specified by:
        transferTo in interface MultipartFile
        Throws:
        java.io.IOException
        java.lang.IllegalStateException
        See Also:
        MultipartFile.getInputStream(), MultipartFile.transferTo(File)
      • isAvailable

        protected boolean isAvailable()
        Determine whether the multipart content is still available. If a temporary file has been moved, the content is no longer available.
      • getStorageDescription

        public java.lang.String getStorageDescription()
        Return a description for the storage location of the multipart content. Tries to be as specific as possible: mentions the file location in case of a temporary file.