package com.nfwork.dbfound.web.file; import java.io.File; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Map; import javax.servlet.FilterConfig; import javax.servlet.ServletConfig; import com.nfwork.dbfound.exception.ParamNotFoundException; import com.nfwork.dbfound.model.base.ParamsAware; import com.nfwork.dbfound.model.bean.Param; public class FileUtil implements ParamsAware { private static String baseFolder = null; Map<String, Param> params; private static SimpleDateFormat format = new SimpleDateFormat("yyyyMM"); public static String getDownLoadFolder(String value) { if (value == null) { return null; } else if (!value.startsWith("/") && value.indexOf(":") == -1) { return baseFolder + "/" + value; } else { return value; } } public static void init(FilterConfig cf) { baseFolder = cf.getInitParameter("uploadFolder"); if (baseFolder == null) { return; } if (!baseFolder.startsWith("/") && baseFolder.indexOf(":") == -1) { baseFolder = cf.getServletContext().getRealPath("/" + baseFolder); } } public static void init(ServletConfig cf) { baseFolder = cf.getInitParameter("uploadFolder"); if (baseFolder == null) { return; } if (!baseFolder.startsWith("/") && baseFolder.indexOf(":") == -1) { baseFolder = cf.getServletContext().getRealPath("/" + baseFolder); } } public static void init(String fold) { baseFolder = fold; } public static synchronized File getUploadFolder(String foldName) { if (baseFolder == null) { baseFolder = System.getProperty("java.io.tmpdir"); } if (foldName == null) { foldName = baseFolder; }else { foldName = baseFolder + "/" + foldName; } File fold = new File(foldName); if (!fold.exists()) { fold.mkdirs(); } return fold; } public static String getUploadFolderName() { return format.format(new Date()); } public void delete() { Param param = params.get("file_disk_name"); if (param == null) { throw new ParamNotFoundException( "param:file_disk_name没有定义,使用该方法必须定义file_disk_name来获取文件的硬盘存储名称!"); } String fileDiskName = param.getStringValue(); File file = new File(baseFolder + "/" + fileDiskName); if (file.exists()) { file.delete(); } } public void setParams(Map<String, Param> params) { this.params = params; } }