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</code> 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      // ----------------------------------------------------------- Data members
37  
38      /**
39       * The factory to use to create new form items.
40       */
41      private FileItemFactory fileItemFactory;
42  
43      // ----------------------------------------------------------- Constructors
44  
45      /**
46       * Constructs an uninitialised instance of this class.
47       *
48       * A factory must be
49       * configured, using <code>setFileItemFactory()</code>, before attempting
50       * to parse requests.
51       *
52       * @see #FileUpload(FileItemFactory)
53       */
54      public FileUpload() {
55          super();
56      }
57  
58      /**
59       * Constructs an instance of this class which uses the supplied factory to
60       * create <code>FileItem</code> instances.
61       *
62       * @see #FileUpload()
63       * @param fileItemFactory The factory to use for creating file items.
64       */
65      public FileUpload(FileItemFactory fileItemFactory) {
66          super();
67          this.fileItemFactory = fileItemFactory;
68      }
69  
70      // ----------------------------------------------------- Property accessors
71  
72      /**
73       * Returns the factory class used when creating file items.
74       *
75       * @return The factory class for new file items.
76       */
77      @Override
78      public FileItemFactory getFileItemFactory() {
79          return fileItemFactory;
80      }
81  
82      /**
83       * Sets the factory class to use when creating file items.
84       *
85       * @param factory The factory class for new file items.
86       */
87      @Override
88      public void setFileItemFactory(FileItemFactory factory) {
89          this.fileItemFactory = factory;
90      }
91  
92  }