Class FileUpload

java.lang.Object
org.apache.wicket.markup.html.form.upload.FileUpload

public class FileUpload extends Object
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
  • Constructor Details

    • FileUpload

      public FileUpload(org.apache.commons.fileupload2.core.FileItem item)
      Constructor
      Parameters:
      item - The uploaded file item
  • Method Details

    • 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() throws IOException
      Deletes temp file from disk
      Throws:
      IOException
    • getBytes

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

      public byte[] getDigest(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

      Returns:
      name of uploaded client side file
      Since:
      1.2
    • getContentType

      Returns:
      Content type for upload
    • getInputStream

      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:
      IOException
    • getSize

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

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

      public final File writeToTempFile() throws 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:
      Exception
      Since:
      1.2