DefaultFileItemFactory.java
上传用户:u_thks
上传日期:2022-07-31
资源大小:1910k
文件大小:4k
源码类别:

WEB源码(ASP,PHP,...)

开发平台:

Java

  1. package com.gamvan.fileUpload;
  2. import java.io.File;
  3. public class DefaultFileItemFactory implements FileItemFactory
  4.     /**
  5.      * The default threshold above which uploads will be stored on disk.
  6.      */
  7.     public static final int DEFAULT_SIZE_THRESHOLD = 10240;
  8.     // ----------------------------------------------------- Instance Variables
  9.     /**
  10.      * The directory in which uploaded files will be stored, if stored on disk.
  11.      */
  12.     private File repository;
  13.     /**
  14.      * The threshold above which uploads will be stored on disk.
  15.      */
  16.     private int sizeThreshold = DEFAULT_SIZE_THRESHOLD;
  17.     // ----------------------------------------------------------- Constructors
  18.     /**
  19.      * Constructs an unconfigured instance of this class. The resulting factory
  20.      * may be configured by calling the appropriate setter methods.
  21.      */
  22.     public DefaultFileItemFactory(){  }
  23.     /**
  24.      * Constructs a preconfigured instance of this class.
  25.      *
  26.      * @param sizeThreshold The threshold, in bytes, below which items will be
  27.      *                      retained in memory and above which they will be
  28.      *                      stored as a file.
  29.      * @param repository    The data repository, which is the directory in
  30.      *                      which files will be created, should the item size
  31.      *                      exceed the threshold.
  32.      */
  33.     public DefaultFileItemFactory(int sizeThreshold, File repository)
  34.     {
  35.         this.sizeThreshold = sizeThreshold;
  36.         this.repository = repository;
  37.     }
  38.     // ------------------------------------------------------------- Properties
  39.     /**
  40.      * Returns the directory used to temporarily store files that are larger
  41.      * than the configured size threshold.
  42.      *
  43.      * @return The directory in which temporary files will be located.
  44.      *
  45.      * @see #setRepository(java.io.File)
  46.      *
  47.      */
  48.     public File getRepository()
  49.     {
  50.         return repository;
  51.     }
  52.     /**
  53.      * Sets the directory used to temporarily store files that are larger
  54.      * than the configured size threshold.
  55.      *
  56.      * @param repository The directory in which temporary files will be located.
  57.      *
  58.      * @see #getRepository()
  59.      *
  60.      */
  61.     public void setRepository(File repository)
  62.     {
  63.         this.repository = repository;
  64.     }
  65.     /**
  66.      * Returns the size threshold beyond which files are written directly to
  67.      * disk. The default value is 1024 bytes.
  68.      *
  69.      * @return The size threshold, in bytes.
  70.      *
  71.      * @see #setSizeThreshold(int)
  72.      */
  73.     public int getSizeThreshold()
  74.     {
  75.         return sizeThreshold;
  76.     }
  77.     /**
  78.      * Sets the size threshold beyond which files are written directly to disk.
  79.      *
  80.      * @param sizeThreshold The size threshold, in bytes.
  81.      *
  82.      * @see #getSizeThreshold()
  83.      *
  84.      */
  85.     public void setSizeThreshold(int sizeThreshold)
  86.     {
  87.         this.sizeThreshold = sizeThreshold;
  88.     }
  89.     // --------------------------------------------------------- Public Methods
  90.     /**
  91.      * Create a new {@link org.apache.commons.fileupload.DefaultFileItem}
  92.      * instance from the supplied parameters and the local factory
  93.      * configuration.
  94.      *
  95.      * @param fieldName   The name of the form field.
  96.      * @param contentType The content type of the form field.
  97.      * @param isFormField <code>true</code> if this is a plain form field;
  98.      *                    <code>false</code> otherwise.
  99.      * @param fileName    The name of the uploaded file, if any, as supplied
  100.      *                    by the browser or other client.
  101.      *
  102.      * @return The newly created file item.
  103.      */
  104.     public FileItem createItem(String fieldName, String contentType, boolean isFormField, String fileName)
  105.     {
  106.         return new DefaultFileItem(fieldName, contentType,
  107.                 isFormField, fileName, sizeThreshold, repository);
  108.     }
  109. }