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  }