Để upload file lên thư mục webapss khi dùng primefaces JSF bạn cần phải xác định thư mục hiện tại(BIN)
public static String workingDir = System.getProperty("user.dir"); // 1 so truong hop bị lỗi khi lên server linus
Cập nhật:
File catalinaBase = new File(System.getProperty("catalina.base")).getAbsoluteFile();
public String workingDir = catalinaBase.getPath();
Ra ngoài thư mục BIN
public static String parentDir = workingDir.substring(0,
workingDir.lastIndexOf(File.separator));// ra ngoai thu muc BIN
Trỏ vào thư mục webapps của server
public static String webappsDir = parentDir + File.separator + "webapps";
Tiến hành upload file vào thư mục này.
Hàm tạo thư mục
public static void createDirectoryIfNeeded(String directoryName)
{
File theDir = new File(directoryName);
// if the directory does not exist, create it
if (!theDir.exists()) {
System.out.println("creating directory: " + directoryName);
theDir.mkdir();
}
}
Như vậy các file upload của bạn sẽ không bị xóa khi restart lại tomcat hay khi build lại source.
Thanks