Class FileUpload

  • All Implemented Interfaces:
    java.io.Serializable, org.apache.wicket.util.io.IClusterable

    public class FileUpload
    extends java.lang.Object
    implements org.apache.wicket.util.io.IClusterable
    Model for file uploads. Objects of this class should not be kept between requests, and should therefore be marked as transient if they become a property of an IModel.
    Author:
    Jonathan Locke
    See Also:
    Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      FileUpload​(org.apache.commons.fileupload.FileItem item)
      Constructor
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void closeStreams()
      Close the streams which has been opened when getting the InputStream using getInputStream().
      void delete()
      Deletes temp file from disk
      byte[] getBytes()  
      java.lang.String getClientFileName()  
      java.lang.String getContentType()  
      byte[] getDigest​(java.lang.String algorithm)
      Get the MD5 checksum.
      java.io.InputStream getInputStream()
      Get an input stream for the file uploaded.
      byte[] getMD5()
      Get the MD5 checksum.
      long getSize()  
      void writeTo​(java.io.File file)
      Saves this file upload to a given file on the server side.
      java.io.File writeToTempFile()
      Convenience method that copies the input stream returned by getInputStream() into a temporary file.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • FileUpload

        public FileUpload​(org.apache.commons.fileupload.FileItem item)
        Constructor
        Parameters:
        item - The uploaded file item
    • Method Detail

      • closeStreams

        public final void closeStreams()
        Close the streams which has been opened when getting the InputStream using getInputStream(). All the input streams are closed at the end of the request. This is done when the FileUploadField, which is associated with this FileUpload is detached.

        If an exception is thrown when closing the input streams, we ignore it, because the stream might have been closed already.

      • delete

        public void delete()
        Deletes temp file from disk
      • getBytes

        public byte[] getBytes()
        Returns:
        Uploaded file as an array of bytes
      • getDigest

        public byte[] getDigest​(java.lang.String algorithm)
        Get the MD5 checksum.
        Parameters:
        algorithm - the digest algorithm, e.g. MD5, SHA-1, SHA-256, SHA-512
        Returns:
        The cryptographic digest of the file
      • getMD5

        public byte[] getMD5()
        Get the MD5 checksum.
        Returns:
        The MD5 checksum of the file
      • getClientFileName

        public java.lang.String getClientFileName()
        Returns:
        name of uploaded client side file
        Since:
        1.2
      • getContentType

        public java.lang.String getContentType()
        Returns:
        Content type for upload
      • getInputStream

        public java.io.InputStream getInputStream()
                                           throws java.io.IOException
        Get an input stream for the file uploaded. Use this input stream if you can't use writeTo(File) for persisting the uploaded file. This can be if you need to react upon the content of the file or need to persist it elsewhere, i.e. a database or external filesystem.

        PLEASE NOTE!
        The InputStream return will be closed be Wicket at the end of the request. If you need it across a request you need to hold on to this FileUpload instead.

        Returns:
        Input stream with file contents.
        Throws:
        java.io.IOException
      • getSize

        public long getSize()
        Returns:
        The upload's size
      • writeTo

        public void writeTo​(java.io.File file)
                     throws java.lang.Exception
        Saves this file upload to a given file on the server side.
        Parameters:
        file - The file
        Throws:
        java.lang.Exception
      • writeToTempFile

        public final java.io.File writeToTempFile()
                                           throws java.lang.Exception
        Convenience method that copies the input stream returned by getInputStream() into a temporary file.

        Only use this if you actually need a File to work with, in all other cases use getInputStream() or getBytes()

        Returns:
        temporary file containing the contents of the uploaded file
        Throws:
        java.lang.Exception
        Since:
        1.2