View Javadoc

    1   /*
    2    * Licensed to the Apache Software Foundation (ASF) under one or more
    3    * contributor license agreements.  See the NOTICE file distributed with
    4    * this work for additional information regarding copyright ownership.
    5    * The ASF licenses this file to You under the Apache License, Version 2.0
    6    * (the "License"); you may not use this file except in compliance with
    7    * the License.  You may obtain a copy of the License at
    8    *
    9    *      http://www.apache.org/licenses/LICENSE-2.0
    10   *
    11   * Unless required by applicable law or agreed to in writing, software
    12   * distributed under the License is distributed on an "AS IS" BASIS,
    13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14   * See the License for the specific language governing permissions and
    15   * limitations under the License.
    16   */
    17  package org.apache.commons.fileupload;
    18
    19  /**
    20   * <p>High level API for processing file uploads.</p>
    21   *
    22   * <p>This class handles multiple files per single HTML widget, sent using
    23   * {@code multipart/mixed} encoding type, as specified by
    24   * <a href="http://www.ietf.org/rfc/rfc1867.txt">RFC 1867</a>.  Use {@link
    25   * #parseRequest(RequestContext)} to acquire a list
    26   * of {@link org.apache.commons.fileupload.FileItem FileItems} associated
    27   * with a given HTML widget.</p>
    28   *
    29   * <p>How the data for individual parts is stored is determined by the factory
    30   * used to create them; a given part may be in memory, on disk, or somewhere
    31   * else.</p>
    32   */
    33  public class FileUpload
    34      extends FileUploadBase {
    35
    36      /**
    37       * The factory to use to create new form items.
    38       */
    39      private FileItemFactory fileItemFactory;
    40
    41      /**
    42       * Constructs an uninitialized instance of this class.
    43       *
    44       * A factory must be
    45       * configured, using {@code setFileItemFactory()}, before attempting
    46       * to parse requests.
    47       *
    48       * @see #FileUpload(FileItemFactory)
    49       */
    50      public FileUpload() {
    51      }
    52
    53      /**
    54       * Constructs an instance of this class which uses the supplied factory to
    55       * create {@code FileItem} instances.
    56       *
    57       * @see #FileUpload()
    58       * @param fileItemFactory The factory to use for creating file items.
    59       */
    60      public FileUpload(final FileItemFactory fileItemFactory) {
    61          this.fileItemFactory = fileItemFactory;
    62      }
    63
    64      /**
    65       * Returns the factory class used when creating file items.
    66       *
    67       * @return The factory class for new file items.
    68       */
    69      @Override
    70      public FileItemFactory getFileItemFactory() {
    71          return fileItemFactory;
    72      }
    73
    74      /**
    75       * Sets the factory class to use when creating file items.
    76       *
    77       * @param fileItemFactory The factory class for new file items.
    78       */
    79      @Override
    80      public void setFileItemFactory(final FileItemFactory fileItemFactory) {
    81          this.fileItemFactory = fileItemFactory;
    82      }
    83
    84  }