/**
* Copyright (c) 2011-2017, James Zhan 詹波 (jfinal@126.com).
*
* Licensed 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 com.jfinal.upload;
import java.io.File;
import com.jfinal.kit.LogKit;
import com.jfinal.kit.PathKit;
import com.jfinal.kit.StrKit;
import com.oreilly.servlet.multipart.FileRenamePolicy;
/**
* OreillyCos.
*/
public class OreillyCos {
public static void init(String uploadPath, int maxPostSize, String encoding) {
if (StrKit.isBlank(uploadPath)) {
throw new IllegalArgumentException("uploadPath can not be blank.");
}
try {
Class.forName("com.oreilly.servlet.MultipartRequest");
doInit(uploadPath, maxPostSize, encoding);
} catch (ClassNotFoundException e) {
LogKit.logNothing(e);
}
}
public static void setFileRenamePolicy(FileRenamePolicy fileRenamePolicy) {
if (fileRenamePolicy == null) {
throw new IllegalArgumentException("fileRenamePolicy can not be null.");
}
MultipartRequest.fileRenamePolicy = fileRenamePolicy;
}
private static void doInit(String uploadPath, int maxPostSize, String encoding) {
uploadPath = uploadPath.trim();
uploadPath = uploadPath.replaceAll("\\\\", "/");
String baseUploadPath;
if (PathKit.isAbsolutelyPath(uploadPath)) {
baseUploadPath = uploadPath;
} else {
baseUploadPath = PathKit.getWebRootPath() + File.separator + uploadPath;
}
// remove "/" postfix
if (baseUploadPath.equals("/") == false) {
if (baseUploadPath.endsWith("/")) {
baseUploadPath = baseUploadPath.substring(0, baseUploadPath.length() - 1);
}
}
MultipartRequest.init(baseUploadPath, maxPostSize, encoding);
}
}