项目图片上传存储的目录部分代码思路Calendar类获取年月日

在项目中将产品图片全部放置在一个文件夹下面的话,如果图片很多的话,加载速度会减慢,可以按照文件夹按年,月,日来分开存放,图片文件名字取系统时间long类型加上5位随机数字码避免重复。

Calendar calendar = Calendar.getInstance();
/**按年月日来分*/
int year = calendar.get(Calendar.YEAR);//得到年
int month = calendar.get(Calendar.MONTH)+1;//得到月,因为从0开始的,所以要加1
int day = calendar.get(Calendar.DAY_OF_MONTH);//得到天 String filename = String.valueOf(calendar.getTimeInMillis() + StrUtils.randomNumeric(5)); saveurl = Constants.ROOTPATH + url; String path1 = saveurl + year + "/" ;
String path2 = saveurl + year + "/" + month + "/" ;
String path3 = saveurl + year + "/" + month + "/" + day + "/" ; //建立按年月日文件夹,如果文件夹不存在,就建立新的文件夹。
FileOperate.newFolder(path1);
FileOperate.newFolder(path2);
FileOperate.newFolder(path3); String pic_url = filename + "." + ext; saveurl = path3; //新的目录
saveurl += pic_url; //保存路径
//saveurl += filename; myFile.saveAs(saveurl, SmartUpload.SAVE_PHYSICAL); /**保存到数据库中的图片地址*/
pic_url = year + "/" + month + "/" + day + "/" + pic_url; //新的图片url

文件夹操作类FileOperate.java

/**
* 新建目录
*
* @param folderPath
* String 如 c:/fqf
* @return boolean
*/
public static void newFolder(String folderPath) {
try {
String filePath = folderPath;
filePath = filePath.toString();
java.io.File myFilePath = new java.io.File(filePath);
if (!myFilePath.exists()) {
myFilePath.mkdir();
}
} catch (Exception e) {
// //ln("新建目录操作出错 ");
e.printStackTrace();
log.error(e.getMessage(), e.fillInStackTrace());
}
}

StrUtils类

public static String randomNumeric(int i) {
return RandomStringUtils.randomNumeric(i);
}

需要commons-lang-2.0.jar支持。

上一篇:php中curl的详细解说


下一篇:PCRE兼容正则表达式函数