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 }