com.rt.web.multipart.GFileItemFactory Maven / Gradle / Ivy
package com.rt.web.multipart;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
/**
*
*
* The class is an implementation of the {@link org.apache.commons.fileupload.FileItemFactory} interface.
*
*
* maxInMemorySize is set to Integer.MAX_VALUE by default.
*
* @author kernel164
*/
public class GFileItemFactory implements FileItemFactory {
/** Thresold file size in Memory is set to max file upload size (default is max integer value). */
private int sizeThreshold = Integer.MAX_VALUE;
/**
* Create a new {@link GFileItem} instance from the supplied parameters and the local factory configuration.
*
* @param fieldName The name of the form field.
* @param contentType The content type of the form field.
* @param isFormField true
if this is a plain form field; false
otherwise.
* @param fileName The name of the uploaded file, if any, as supplied by the browser or other client.
*
* @return The newly created file item.
*/
public FileItem createItem(String fieldName, String contentType, boolean isFormField, String fileName) {
return new GFileItem(fieldName, contentType, isFormField, fileName, sizeThreshold);
}
/**
* Sets the size threshold to store the data in memory, beyond that GFileItem will throw error,
* as file handling is not supported in GAE.
*
* @param sizeThreshold The size threshold, in bytes.
*
* @see #getSizeThreshold()
*/
public void setSizeThreshold(int sizeThreshold) {
this.sizeThreshold = sizeThreshold;
}
/**
* Returns the size threshold beyond which files are written directly to disk. The default value is Integer.MAX_VALUE bytes (2 GB approx).
*
* @return The size threshold, in bytes.
*
* @see #setSizeThreshold(int)
*/
public int getSizeThreshold() {
return sizeThreshold;
}
}