您的位置:首页 > 编程语言

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

2014-01-09 18:34 447 查看
在项目中将产品图片全部放置在一个文件夹下面的话,如果图片很多的话,加载速度会减慢,可以按照文件夹按年,月,日来分开存放,图片文件名字取系统时间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支持。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: