Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Licensed to the Apache Software Foundation (ASF) under one or more
   * contributor license agreements.  See the NOTICE file distributed with
   * this work for additional information regarding copyright ownership.
   * The ASF licenses this file to You under the Apache License, Version 2.0
   * (the "License"); you may not use this file except in compliance with
   * the License.  You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 package org.apache.tomcat.util.http.fileupload.disk;
 
 import java.io.File;
 

The default org.apache.tomcat.util.http.fileupload.FileItemFactory implementation. This implementation creates org.apache.tomcat.util.http.fileupload.FileItem instances which keep their content either in memory, for smaller items, or in a temporary file on disk, for larger items. The size threshold, above which content will be stored on disk, is configurable, as is the directory in which temporary files will be created.

If not otherwise configured, the default configuration values are as follows:

  • Size threshold is 10KB.
  • Repository is the system default temp directory, as returned by System.getProperty("java.io.tmpdir").

Temporary files, which are created for file items, should be deleted later on. The best way to do this is using a org.apache.tomcat.util.http.fileupload.FileCleaningTracker, which you can set on the DiskFileItemFactory. However, if you do use such a tracker, then you must consider the following: Temporary files are automatically deleted as soon as they are no longer needed. (More precisely, when the corresponding instance of java.io.File is garbage collected.) This is done by the so-called reaper thread, which is started automatically when the class org.apache.commons.io.FileCleaner is loaded. It might make sense to terminate that thread, for example, if your web application ends. See the section on "Resource cleanup" in the users guide of commons-fileupload.

Author(s):
Martin Cooper
Version:
$Id: DiskFileItemFactory.java 981816 2010-08-03 10:44:58Z markt $
Since:
FileUpload 1.1
 
 public class DiskFileItemFactory implements FileItemFactory {
 
     // ----------------------------------------------------- Manifest constants
 

    
The default threshold above which uploads will be stored on disk.
 
     public static final int DEFAULT_SIZE_THRESHOLD = 10240;
 
 
     // ----------------------------------------------------- Instance Variables
 

    
The directory in which uploaded files will be stored, if stored on disk.
 
     private File repository;


    
The threshold above which uploads will be stored on disk.
 
     private int sizeThreshold = ;


    

The instance of org.apache.tomcat.util.http.fileupload.FileCleaningTracker, which is responsible for deleting temporary files.

May be null, if tracking files is not required.

 
 
     // ----------------------------------------------------------- Constructors
 

    
Constructs an unconfigured instance of this class. The resulting factory may be configured by calling the appropriate setter methods.
    public DiskFileItemFactory() {
        this(null);
    }


    
Constructs a preconfigured instance of this class.

Parameters:
sizeThreshold The threshold, in bytes, below which items will be retained in memory and above which they will be stored as a file.
repository The data repository, which is the directory in which files will be created, should the item size exceed the threshold.
    public DiskFileItemFactory(int sizeThresholdFile repository) {
        this. = sizeThreshold;
        this. = repository;
    }
    // ------------------------------------------------------------- Properties


    
Returns the directory used to temporarily store files that are larger than the configured size threshold.

Returns:
The directory in which temporary files will be located.
See also:
setRepository(java.io.File)
    public File getRepository() {
        return ;
    }


    
Sets the directory used to temporarily store files that are larger than the configured size threshold.

Parameters:
repository The directory in which temporary files will be located.
See also:
getRepository()
    public void setRepository(File repository) {
        this. = repository;
    }


    
Returns the size threshold beyond which files are written directly to disk. The default value is 10240 bytes.

Returns:
The size threshold, in bytes.
See also:
setSizeThreshold(int)
    public int getSizeThreshold() {
        return ;
    }


    
Sets the size threshold beyond which files are written directly to disk.

Parameters:
sizeThreshold The size threshold, in bytes.
See also:
getSizeThreshold()
    public void setSizeThreshold(int sizeThreshold) {
        this. = sizeThreshold;
    }
    // --------------------------------------------------------- Public Methods

    
Create a new DiskFileItem instance from the supplied parameters and the local factory configuration.

Parameters:
fieldName The name of the form field.
contentType The content type of the form field.
isFormField true if this is a plain form field; false otherwise.
fileName The name of the uploaded file, if any, as supplied by the browser or other client.
Returns:
The newly created file item.
    public FileItem createItem(String fieldNameString contentType,
            boolean isFormFieldString fileName) {
        DiskFileItem result = new DiskFileItem(fieldNamecontentType,
                isFormFieldfileName);
        FileCleaningTracker tracker = getFileCleaningTracker();
        if (tracker != null) {
            tracker.track(result.getTempFile(), this);
        }
        return result;
    }


    
Returns the tracker, which is responsible for deleting temporary files.

Returns:
An instance of org.apache.tomcat.util.http.fileupload.FileCleaningTracker, or null (default), if temporary files aren't tracked.
        return ;
    }

    
Sets the tracker, which is responsible for deleting temporary files.

Parameters:
pTracker An instance of org.apache.tomcat.util.http.fileupload.FileCleaningTracker, which will from now on track the created files, or null (default), to disable tracking.
    public void setFileCleaningTracker(FileCleaningTracker pTracker) {
         = pTracker;
    }
New to GrepCode? Check out our FAQ X