All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jodd.servlet.upload.impl.DiskFileUploadFactory Maven / Gradle / Ivy

// Copyright (c) 2003-2012, Jodd Team (jodd.org). All Rights Reserved.

package jodd.servlet.upload.impl;

import jodd.servlet.upload.FileUpload;
import jodd.servlet.upload.MultipartRequestInputStream;
import jodd.servlet.upload.FileUploadFactory;
import jodd.util.SystemUtil;

import java.io.File;
import java.io.IOException;

/**
 * Factory for {@link jodd.servlet.upload.impl.DiskFileUpload}
 */
public class DiskFileUploadFactory implements FileUploadFactory {

	protected File destFolder;

	protected int maxFileSize = 102400; 

	public DiskFileUploadFactory() throws IOException {
		this(SystemUtil.getTempDir());
	}

	public DiskFileUploadFactory(String destFolder) throws IOException {
		this(destFolder, 102400);

	}

	public DiskFileUploadFactory(String destFolder, int maxFileSize) throws IOException {
		setUploadDir(destFolder);
		this.maxFileSize = maxFileSize;
	}


	public DiskFileUploadFactory setUploadDir(String destFolder) throws IOException {
		if (destFolder == null) {
			destFolder = SystemUtil.getTempDir();
		}
		File destination = new File(destFolder);
		if (destination.exists() == false) {
			destination.mkdirs();
		}
		if (destination.isDirectory() == false) {
			throw new IOException("Invalid destination folder: " + destFolder);
		}
		this.destFolder = destination;
		return this;
	}

	public int getMaxFileSize() {
		return maxFileSize;
	}

	/**
	 * Sets maximum file upload size. Setting to -1 will disable this constraint.
	 */
	public DiskFileUploadFactory setMaxFileSize(int maxFileSize) {
		this.maxFileSize = maxFileSize;
		return this;
	}

	/**
	 * {@inheritDoc}
	 */
	public FileUpload create(MultipartRequestInputStream input) {
		return new DiskFileUpload(input, destFolder, maxFileSize);
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy